2015-07-21 52 views
1

好家伙,这是我的JSON响应:的Android Jsonarray不能转换成JSON对象

[ 
    { 
    "Woa": [ 
    "Seo", 
    "Rikjeo", 
    "JDa" 
    ] 
    }, 
"Aha", 
"Aad", 
"Char" 
] 

我要添加到列表吁的字符串:

{ 
    "Woa": [ 
    "Seo", 
    "Rikjeo", 
    "JDa" 
    ] 
    } 

这是我做了什么到目前为止:

JSONObject object = new JSONObject(result); 
      JSONArray a = object.getJSONArray("Woa"); 
      for (int i = 0; i < a.length(); ++i) { 
       listWoa.add(a.getString(i)); 
      } 

但我发现了这个错误:

type org.json.JSONArray cannot be converted to JSONObject 

任何想法,为什么我没有得到任何字符串,无法转换为JSONObject。

+0

您的回复是在JSONArray不是在JSONObject – SANAT

+0

那么我该如何解决这个问题? –

+0

对象是第一个数组。所以使用object [0] .getJSONArray(“Woa”); – Raghavendra

回答

3

为了解析上述JSON响应。尝试下面的代码:

 JSONArray jsonArray = new JSONArray(result); 
     JSONObject jsonObjWoa = jsonArray.getJSONObject(0); 
     JSONArray jsonArrayWoa = jsonObjWoa.getJSONArray("Woa"); 
     for (int i = 0; i < jsonArrayWoa.length(); ++i) { 
      listWoa.add(jsonArrayWoa.getString(i)); 
     } 
+0

谢谢兄弟!这工作。 –

1

做这样的事情:

JSONArray jsonArray = new JSONArray(result); 
JSONObject object = new JSONObject(jsonArray.get(0).toString());// if you have only one element then get 0th index 
JSONArray a = object.getJSONArray("Woa"); 
for (int i = 0; i < a.length(); ++i) { 
     listWoa.add(a.getString(i)); 
    } 
+0

我得到无法解析新的JSONObject(jsonArray.get(0))中的构造函数; –

+0

append'.toString()'我编辑了我的答案。 – Pankaj

2

你JSON是一个数组,其中第一个项目是一个对象

[        << This is an array (let's call it A) 
    {         << This is A[0] 
    "Woa": [ 
    "Seo", 
    "Rikjeo", 
    "JDa" 
    ] 
    }, 
"Aha",        << This is A[1] == "AhA" 
"Aad",        << This is A[2] == "aad" 
"Char"        << This is A[3] == "Char" 
] 

,如此,(的 “东西” 的列表)[0 ]为对象:

{       << This is an object (A[0]) 
    "Woa": [      << This is A[0].Woa (it's an array) 
    "Seo",       << This is A[0].Woa[0] == "Seo" 
    "Rikjeo",      << This is A[0].Woa[1] == "Rikjeo" 
    "JDa"       << This is A[0].Woa[2] == "JDa" 
    ] 
    } 

容易的方法不混合在JSON阵列和OBJETS是这样的:

[...] is an array 
{...} is an object 
0

从我的角度来看:我会用GSON自动解析JSON和这个网站来生成POJO。

http://www.jsonschema2pojo.org/ 请务必点击:GSON作为注释风格,并使用JSON而不是JSON格式