gpt4 book ai didi

android - 循环遍历没有子名称的json对象

转载 作者:塔克拉玛干 更新时间:2023-11-03 00:30:43 24 4
gpt4 key购买 nike

我想检索这个 json 格式文档中所有元素的值。

[
{
"id": "c0001xgp",
"title": 8.8,
"content": 142.369,
"vignette": "us",
"image": "2011-03-11 04:46:23",
"type": 24.4,
"pubdate": 38.322
},
{
"id": "c0001xgp",
"title": 8.8,
"content": 142.369,
"vignette": "us",
"image": "2011-03-11 04:46:23",
"type": 24.4,
"pubdate": 38.322
}, {
"id": "c0001xgp",
"title": 8.8,
"content": 142.369,
"vignette": "us",
"image": "2011-03-11 04:46:23",
"type": 24.4,
"pubdate": 38.322
}, {
"id": "c0001xgp",
"title": 8.8,
"content": 142.369,
"vignette": "us",
"image": "2011-03-11 04:46:23",
"type": 24.4,
"pubdate": 38.322
}

]

我怎样才能做到这一点。我正在学习 json 和 android。当我可以处理的 json 对象中有父项时,但现在我很难解决这个问题。

主类

// JSON Node names
private static final String TAG_ARRAY= "";

private static final String TAG_ID = "id";

private static final String TAG_TITLE = "title";

private static final String TAG_CONTENT = "content";

private static final String TAG_VIGNETTE = "vignette";

private static final String TAG_IMAGE = "image";

private static final String TAG_TYPE = "type";

private static final String TAG_PUBDATE = "pubdate";


// contacts JSONArray

JSONArray myArray = null;

@Override

public void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.actus);

// Hashmap for ListView
ArrayList<HashMap<String, String>> contactList = new ArrayList<HashMap<String, String>>();

// Creating JSON Parser instance

JSONParser jParser = new JSONParser();

// getting JSON string from URL
JSONArray jArray = jParser.getJSONFromUrl(url);


// looping through All element
for(int i = 0; i < jArray.length(); i++){


JSONObject oneObject = null;
try{

oneObject = jArray.getJSONObject(i);

// Storing each json item in variable
String id;

String title;

title = oneObject.getString(TAG_TITLE);


String content = oneObject.getString(TAG_CONTENT);

String vignette = oneObject.getString(TAG_VIGNETTE);

String image = oneObject.getString(TAG_IMAGE);

String type = oneObject.getString(TAG_TYPE);

String pubdate = oneObject.getString(TAG_PUBDATE);


// creating new HashMap
HashMap<String, String> map = new HashMap<String, String>();

// adding each child node to HashMap key => value

map.put(TAG_TITLE, title);

map.put(TAG_CONTENT, content);

map.put(TAG_VIGNETTE, vignette);

map.put(TAG_TYPE, type);

map.put(TAG_PUBDATE, pubdate);



// adding HashList to ArrayList

contactList.add(map);


}catch (JSONException e) {

// TODO Auto-generated catch

block e.printStackTrace();

        }



/**
* Updating parsed JSON data into ListView
*/
ListAdapter adapter = new SimpleAdapter(this, contactList,
R.layout.list_item,
new String[] { TAG_TITLE, TAG_CONTENT, TAG_VIGNETTE }, new int[] {
R.id.name, R.id.email, R.id.mobile });

setListAdapter(adapter);

// selecting single ListView item
ListView lv = getListView();

// Launching new screen on Selecting Single ListItem

lv.setOnItemClickListener(new OnItemClickListener() {

@Override
public void onItemClick(AdapterView<?> parent, View view,
int position, long id) {
// getting values from selected ListItem
String name = ((TextView) view.findViewById(R.id.name)).getText().toString();

String cost = ((TextView) view.findViewById(R.id.email)).getText().toString();

String description = ((TextView) view.findViewById(R.id.mobile)).getText().toString();

// Starting new intent
Intent in = new Intent(getApplicationContext(), SingleMenuItemActivity.class);
in.putExtra(TAG_VIGNETTE, name);

in.putExtra(TAG_CONTENT, cost);

in.putExtra(TAG_VIGNETTE, description);

startActivity(in);

}
});


}

最佳答案

“正如您所说,没有父级,因此您必须使用 JSONArray,您需要通过它循环并获取所有 JSON 对象。”

 try
{ JSONArray mp3 = new JSONArray(jsonStr);
JSONObject c = new JSONObject();

// looping through All
for (int i = 0; i < mp3.length(); i++)
{
try
{
c = mp3.getJSONObject(i);

String id = c.getString(TAG_mp3_id);
String title = c.getString(TAG_title);


// tmp hashmap for single contact
HashMap<String, String> contact = new HashMap<String,String>();

// adding each child node to HashMap key => value
contact.put(TAG_mp3_id, id);
contact.put(TAG_title, title);


// adding contact to contact list
mp3List.add(contact);


}
catch (JSONException e)
{
e.printStackTrace();
}
}

}

“希望对你有所帮助。”

关于android - 循环遍历没有子名称的json对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14477025/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com