0

ここに私の有効なJSONデータ

   {
    "query": {
       "pages": {
          "8691": {
             "pageid": 8691,
             "ns": 0,
             "title": "d"
           }
       }
    }
}

これは私のデータの取得方法pageidtitle値です。

EDIT:だから私はJSONObjectを取得し、pagesからJSONObjectsを取得したいのですpagesが、問題はそれらの名前が毎回異なることです。どうすればそれを行うことができますか?

4

4 に答える 4

3

pageidおよび取得に関して、現在のjson文字列を解析できます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");
于 2013-02-18T05:02:51.850 に答える
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);
        }
    }
}
于 2013-02-18T05:21:49.350 に答える
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

このリンクを確認してください これを参照してください

于 2013-02-18T05:09:15.737 に答える
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"));

pageId は動的であるため、JSONObject の最初のインデックス オブジェクトの名前を取得できます。

于 2013-02-18T05:10:40.047 に答える