1

以下の件でお世話になります。JSONファイルの親タグを読み取りたい。以下は私のJSONファイルの内容です。

{
    "ebook":
        [
            {"id":"1","name":"book1"},
            {"id":"2","name":"book2"}
        ],
    "ebrochure":
        [
            {"id":"1","name":"brochure1"},
            {"id":"2","name":"brochure2"}       
        ],
    "emenu":
        [
            {"id":"1","name":"menu1"},
            {"id":"2","name":"menu2"}           
        ]
}

JSON内の親タグの数と、それらが何であるかを調べる必要があるだけです。私の与えられたJSONファイルによると、答えは3 (3 つの親 JSON タグがあります) と " ebooksebrochureemenu " (親タグの名前) である必要があります。仕事を終わらせることができるJAVAクラスはありますか?

完全なJSONファイルを読み取る方法を知っています。最初にJSONを aに渡し、次にメソッドを使用してJSONObject子を a に渡します。JSONArraygetJSONArray()

ただし、getJSONArray()メソッドには親タグの名前が必要です。私の例によれば、それはebookebrochureまたはemenuです。URL にアクセスするだけでJSONのコンテンツが表示されない状況があるとします。このような状況では、親タグがいくつあり、それらの名前が何であるかを調べる必要があります。

それが私の問題です。私を助けてくれてありがとう:-)

4

3 に答える 3

4

JSONObject.namesのドキュメントを読む必要があります

基本的に、names()(Androidでは)フィールド名の配列を取得し、それらをキーとして使用できます。ここでは完全な例は示しません。自分で試してみると、よりよく学ぶことができるからです。

于 2012-06-06T05:10:47.260 に答える
3
public static String Fechingdata(String response){
        Id1.clear();
        Id2.clear();
        Id3.clear();
        name1.clear();
        try{
            JSONArray jsonarray = new JSONArray("["+response+"]");
            JSONObject jsonobject = jsonarray.getJSONObject(0);
            parseForResponse1(jsonobject.getString("ebook"),1);
            parseForResponse2(jsonobject.getString("ebrochure"),2);
            parseForResponse3(jsonobject.getString("emenu"),3);
            return response;

        }catch (Exception e) {
            return "\"" + "Access Denied" + "\"";
        }
    }

    private static void parseForResponse1(String res,int i) {
        try{

            JSONArray jsonarray1 = new JSONArray(res);
            Log.d("jsarry1",""+jsonarray1.length());
            for(int i=0;i<jsonarray1.length();i++){
               JSONObject jsonobject = jsonarray1.getJSONObject(i);
               if(i ==1){
                   Id1.add(jsonobject.getString("id"));
                    name1.add(jsonobject.getString("id"));
               }
               if(i ==2){
                   Id2.add(jsonobject.getString("id"));
                    name2.add(jsonobject.getString("id"));
               }
               if(i ==2){
                   Id3.add(jsonobject.getString("id"));
                    name3.add(jsonobject.getString("id"));
               }    
            }

        }
        catch (Exception e) {
            System.out.println(e.toString());
        }

    }

これは、このjson解析を試してください

于 2012-06-06T05:25:10.153 に答える
2
 JSONObject  jobj = new JSONObject(Your Json String);
 JSONArray jarray=jobj.names();

   for(int i=0;i<jarray.length();i++){

      Log.e("parenttag",jarray.getString(i));

   }

これにより、jsonStringにあるすべての親タグを取得します

于 2012-06-06T05:43:18.747 に答える