1

我有以下 JSON 对象,我需要将web数组中的路径字符串解析为新的 JSON 数组。

"taxonomy": {
    "source": {
        "master": {
            "_id": "5000",
            "path": "/Appliances/Refrigerators/French Door Bottom Freezers"
        },
        "web": [
            {
                "_id": "6686",
                "path": "/Appliances/Refrigerators/French Door Bottom Freezers"
            },
            {
                "_id": "7686",
                "path": "/Appliances/Refrigerators/Bottom Freezers"
            }
        ],

    },

},

我已经写到这里了,但我不确定如何获取web数组中的所有路径。

                JSONObject jsonTaxonomy= _blob.optJSONObject("taxonomy");
            if(jsonTaxonomy!=null)
            {
                if(!jsonTaxonomy.isNull("source"))
                {
                    JSONObject jsonTaxonomySource= jsonTaxonomy.optJSONObject("source");
                    if(!jsonTaxonomySource.isNull("web"))
                    {
                        JSONArray jsonTaxonomySourceWeb= jsonTaxonomySource.optJSONArray("web");
                        if(jsonTaxonomySourceWeb!=null && jsonTaxonomySourceWeb.length()>0)
                        {
                            //Got inside the array
                        }
                    }
                }
            } 
4

4 回答 4

1

在没有为您提供完整答案的情况下,我相信您可以通过调试此方法并在最内部停止它来找到答案if()。您将能够了解jsonTaxonomySearsWeb包含的内容以及如何获取其值。

于 2013-04-29T10:14:14.330 回答
0

将您的代码修改为以下内容:-

JSONObject jsonTaxonomy= _blob.optJSONObject("taxonomy");
if(jsonTaxonomy!=null)
{
        JSONObject jsonTaxonomySource = jsonTaxonomy.optJSONObject("source");
        if(jsonTaxonomySource!=null)
        {
            JSONArray jsonTaxonomySearsWeb= jsonTaxonomySource.optJSONArray("web");
            if(jsonTaxonomySearsWeb!=null)
            {
                // Traverse through your JSONArray and get each Object & extract path from it.
            }
        }
}
于 2013-04-29T10:18:27.913 回答
0

我对这个问题有点不清楚。但是根据我的理解,如果你想在 java 中解析 JSON,那么你可以使用谷歌的 GSON jar ...你也可以在这里查看简单的例子Gson handle object or array

于 2013-04-29T10:32:57.710 回答
0

试试这样...

      groups = json.getJSONArray(TAG_GROUP);
      System.out.println("Result Success+++"+groups);
      for (int i = 0; i < groups.length(); i++) {
      JSONObject c = groups.getJSONObject(i);
      String source = c.getString(TAG_SOURCE);
      System.out.println("Checking ::"+source);
      String lname = c.getString(TAG_PATH);
      HashMap<String, String> map = new HashMap<String, String>();
      map.put(TAG_SOURCE, source);
      map.put(TAG_PATH,path);
      weblist.add(map);       //weblist is your arraylist for both values
      webpathlist.add(path);   //webpathlist is your arraylist for path
       }
      List<String> newList = new ArrayList<String>();
      newList.addAll(weblist);
于 2013-04-29T10:58:30.197 回答