2011-03-25 45 views
0
{ 
"antikguiden": { 
    "stores":[ 
    { 
    "name": "Ninas Bruk & Brocante (Fd Isakssons Antik och Kuriosa)", 
    "category": "Antikaffär" },} 

此JSON如何选择数据现在我想选择数据名称&类别使用的JSONObject

上展示Android模拟器。

我该如何编写代码?谢谢。

+1

这不是JSON。这看起来像一个5岁的混合键盘的结果。你的'{,},[,]'都在商店里。 – Matt 2011-03-25 09:23:13

回答

0

确定。我不认为你发布了完整的JSON字符串;

下面是一个有效的JSON字符串:

{ "antikguiden": 
    { "stores":[ 
     {"name": "Ninas Bruk & Brocante (Fd Isakssons Antik och Kuriosa)","category": "Antikaffär"} 
     ]} 
} 

下面是如何解析它在安卓

String jsonStr = the json string above; 
JSONObject jObject = new JSONObject(jsonStr); 
JSONObject antikguiden = jObject.getJSONObject("antikguiden"); 
JSONArray storeList = antikguiden.getJSONArray("stores"); 
for(int i = 0; i < storeList.length(); i++) { 
    JSONObject story = storeList.getJSONObject(i); 
    String name = story.getString("name"); 
    String category = story.getString("category"); 
} 

我没有测试过,所以有可能是一个语法错误或两个;但这就是你如何去做的。

0

如果你的字符串如下所示。

 
str = "{'antikguiden':{'stores':[{'name': 'Ninas Bruk & Brocante (Fd Isakssons Antik och Kuriosa)','category': 'Antikaffär'}] }}"; 
     try { 
      JSONObject obj = new JSONObject(str); 
      JSONObject obj1 = obj.getJSONObject("antikguiden"); 
      JSONArray jsonarray = obj1.getJSONArray("stores"); 
      Log.v("TEST","name is "+jsonarray.getJSONObject(0).get("name")); 
      Log.v("TEST","category is "+jsonarray.getJSONObject(0).get("category")); 
     } catch (JSONException e) { 
      e.printStackTrace(); 
     } 

为了使它泛化为詹姆斯所提到的,在得到json数组之后使用循环。