这是我的有效JSON数据
{
"query": {
"pages": {
"8691": {
"pageid": 8691,
"ns": 0,
"title": "d"
}
}
}
}
这是我的数据,如何获得pageid
和title
值。
EDIT:
所以我得到一个JSONObject pages
,我想从pages
获取JSONObjects,但问题是他们的名字每次都不同。所以我不能只做json .getJSONObject( “8691”);.那么任何建议我该怎么做?
答案 0 :(得分:3)
你可以解析当前的json String以获取pageid
和title
:
JSONObject json =new JSONObject("json string");
//get query json object
JSONObject jsonquery =json.getJSONObject("query");
//get pages json object
JSONObject jsonpages =jsonquery.getJSONObject("pages");
//get names for jsonpages
JSONArray namejsonarray = jsonpages.names();
// now get json object from jsonpages
JSONObject jsonnew =jsonpages.getJSONObject(namejsonarray.get(0));
//get pageid from jsonnew json object
String str_pageid =jsonnew.getString("pageid");
//get title from jsonnew json object
String str_title =jsonnew.getString("title");
答案 1 :(得分:2)
jsonString=" {
"query": {
"pages": {
"8691": {
"pageid": 8691,
"ns": 0,
"title": "d"
}
}
}
}";
JSONObject json = new JSONObject(jsonString);
JSONObject json_query = json.getJSONObject("query");
JSONObject json_pages = json_query.getJSONObject("pages");
JSONArray pagesjsonarray = json_pages.names();
JSONObject jsonobject =json_pages.getJSONObject(pagesjsonarray.get(0));
jsonobject .get("pageid");// it will return 8691
jsonobject .get("title");// it will return d
点击此链接see this
答案 2 :(得分:2)
JSONObject mainJson = new JSONObject("{\"query\": {\"pages\": {\"8691\": {\"pageid\": 8691,\"ns\": 0,\"title\": \"d\"}}}}");
JSONObject jsonOnb = mainJson.getJSONObject("query").getJSONObject("pages") ;
JSONObject pagesObj = jsonOnb.getJSONObject(jsonOnb.names().getString(0));
System.out.println("pageid : " + pagesObj.get("pageid"));
System.out.println("title : " + pagesObj.get("title"));
由于您的页面ID是动态的,您可以在JSONObject中获取第一个索引对象的名称
答案 3 :(得分:2)
假设您已JSONObject
名为pages
:
final JSONObject pages = ...;
final JSONArray names = pages.names();
if (names != null && names.length() > 0) {
for (int i = 0; i < names.length(); i++) {
final String name = names.getString(i);
final JSONObject page = pages.optJSONObject(name);
if (page != null) {
final String id = page.getString("pageid");
final String ns = page.getString("ns");
final String title = page.getString("title");
System.out.println("Id " + id);
System.out.println("ns " + ns);
System.out.println("title " + title);
}
}
}