2013-02-14 124 views
0

我有一个JSON,如下所示:的Android - JSON解析

{ 
     "places": [{ 
      "name": "Ankola", 
      "slug": "ankola", 
      "category": "beach", 
      "distance": "521", 
      "travel_time": "8 hrs, 2 mins", 
      "days": "3", 
      "latitude": "14.669456", 
      "longitude": "74.300952", 
      "weather": "Summer 21\u00b0-36\u00b0C, Winter 12\u00b0-35\u00b0C", 
      "todo": "Baskal gudda, Nadibag, Shedikuli, Keni, Belekeri", 
      "about": "Ankola is a small town surrounded by numerous temples. It is in line with Arabian sea. Ankola is famous for its native breed of mango called ishaad and for cashews harvesting.", 
      "image": [ 
        "Cm5NXlq.jpg", 
        "9OrlQ9C.jpg", 
        "DRWZakh.jpg", 
        "dFKVgXA.jpg", 
        "5WO2nDf.jpg" 
        ] 

     }] 
} 

我知道如何获取键 - 值对,但我不知道如何解析阵列内JSON以形成串阵列(图像 - 在我的情况下)

总结我想这样的事情: 我有5图像名称下的“图像”标记,我想他们在一个字符串数组。我怎样才能做到这一点?

+2

JSONArray jsonArr = jsonObjet.getJSONArray( “图像”); – Martin 2013-02-14 10:06:26

+0

希望错误的逗号是复制粘贴错误。另外,为什么图像名称本身在大括号中?你可以跟谁创建这个JSON? – 2013-02-14 10:06:41

+0

它是有效的JSON? – rajeshwaran 2013-02-14 10:07:02

回答

1

用途:

JSONArray images = yourJSONObject.getJSONArray("image"); 
for(int i = 0; i < images.length(); i++){ 
    String image = images.getString(i); 
} 

我记得这应该做的伎俩。

1

在这里你去:

JSONArray ja = whatEverYourJsonObject.getJSONArray("image"); 

for(int i=0; i<ja.length(); j++){ 
    String name = ja.getString(i); 
} 
1

你首先必须将JSON字符串转换成Java对象(JSONObject)。然后,你获得你的JSONArray并迭代它。

例子:

JSONObject jsonObj = null; 
try { 
    jsonObj = new JSONObject (jsonString); 
    JSONArray images = itemObj.getJSONArray ("images"); 
    int length = images.length(); 

    for (int i = 0; i < length; i++) 
     Log.d ("Image Filename", images.getString (i)); 
} catch (JSONException e) { 
    e.printStackTrace(); 
} 

编辑:现在我明白了,你的JSON是无效的 - 你必须为每个图像的对象,该对象仅包含数据的价值的一部分。一个有效的图像阵列的一个例子是如下:

{ 
    "image": [ 
     "Cm5NXlq.jpg", 
     "9OrlQ9C.jpg", 
     "DRWZakh.jpg", 
     "dFKVgXA.jpg", 
     "5WO2nDf.jpg" 
    ] 
} 
1

我建议:

  1. 创建自己的类,它描述了数据结构由这些JSON对象定义 。作为最后的手段,你甚至可以基于JSON字符串的Java 类 - 看 jsongen
  2. 当你将拥有自己的Java类(比方说MyClass),您可以轻松地解析JSON使用GSON您生成的Java类,像:

    MyClass myClass = gson.fromJson(jsonString, MyClass.class);