我收到以下格式的JSON
doctrine:migrations:status
在PHP和Angular中工作正常
在android studio中我收到以下错误
{
"goods" : {
"t1" : {
"name" : "name1"
},
"t2" : {
"name" : "name2"
}
}
}
在以下结构中正常工作
W/System.err: org.json.JSONException: Unterminated array at character 23 of {
W/System.err: "goods" : [
W/System.err: "t1" : {
W/System.err: "name" : "name1"
W/System.err: },
W/System.err: "t2" : {
W/System.err: "name" : "name2"
W/System.err: }
W/System.err: ]
W/System.err: }
但问题是我从服务器获取JSON:对象中的许多对象,而不是:数组中的许多对象。有没有办法使这项工作,我无法改变服务器的结构,因为在那个Json工作许多其他网站。请帮忙 !!!!!!!!!!!!!
以下是我如何使用它的代码
{
"goods" : [
{
"name" : "name1"
},
{
"name" : "name2"
}
]
}
答案 0 :(得分:0)
try {
JSONObject jsonObj = new JSONObject(jsonStr);
// Getting JSON Object node
JSONObject contacts = jsonObj.getJSONObject("goods");
// looping through All Contacts
for (int i = 0; i < contacts.length(); i++) {
JSONObject c = contacts.getJSONObject(i);
String name = c.getString("name");
Log.e("JSON : ", name);
}
} catch (JSONException e) {
e.printStackTrace();
}
试试这个。如果这不起作用,请随时询问或尝试this希望它可以帮助您
编辑:
如果您的密钥是动态生成的。请尝试以下代码
try
{
JSONObject jObject= new JSONObject(responseData).getJSONObject("goods");
Iterator<String> keys = jObject.keys();
while( keys.hasNext() )
{
String key = keys.next();
Log.v("**********", "**********");
Log.v("category key", key);
JSONObject innerJObject = jObject.getJSONObject(key);
String name = innerJObject.getString("name");
Log.v("name = "+name);
}
}
catch (JSONException e){
e.printStackTrace();
}