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 标签)和“ ebooksebrochureemnu ”(父标签的名称)。有任何 JAVA 课程可以让我完成工作吗?

我知道如何阅读完整的JSON文件。首先我们将JSON传递给 a JSONObject,然后通过JSONArrayusinggetJSONArray()方法将孩子传递给 a。

但是getJSONArray()方法需要父标签的名称。根据我的示例,它可以是ebookebrochureemenu。假设有一种情况,我们只能访问 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 回答