我遇到了JSon问题,我试图获取一个包含在JSon对象中的值,它本身包含在另一个JSon对象中。返回的JSon就像这样" {" ID":25,"名称":" AAAAAAAA:eeeeegh"" dishes_number":2"描述&#34 ;:" tttttttttttttf""国家" {"代码":" FR""名称":&# 34; France"}," type":{" id":2," name":"主菜"}}& #34; 我想获得Country中的值od代码和Type
中的id这是我的代码
try{
JSONArray json = new JSONArray(sb.toString());
Courses coun;
for(int i=0; i < json.length(); i++) {
JSONObject jsonObject = json.getJSONObject(i);
coun = new Courses();
// Log.i(TAG, "Nom Pays : " + jsonObject.get("name"))
coun.setName((String) jsonObject.get("name"));
coun.setId((int) jsonObject.get("id"));
coun.setCountryCode((String) jsonObject.get("code"));
coun.setDescription((String) jsonObject.get("description"));
/* coun.setCourseTypeId((int) jsonObject.get("code"));
coun.setDishesNumber((int) jsonObject.get("code")); */
repas.add(coun);
}
}catch (JSONException je){
je.printStackTrace();
};
它给了我答案&#34; org.json.JSONException:代码没有值&#34;当我运行应用程序时
感谢您的帮助
答案 0 :(得分:0)
代码字段嵌套在国家/地区,因此您需要先获得国家/地区:
((JSONObject)jsonObject.get("country")).get("code")
以同样的方式从中获取类型和嵌套的id字段。
P.S。我测试代码:
public static void main(String[] args) {
String jsonStr = "[{\"id\":25,\"name\":\"aaaaaaaa:eeeeegh\",\"dishes_number\":2,\"description\":\"tttttttttttttf\",\"country\":{\"code\":\"FR\",\"name\":\"France\"},\"type\":{\"id\":2,\"name\":\"Main course\"}}]";
try {
JSONArray json = new JSONArray(jsonStr);
for (int i = 0; i < json.length(); i++) {
JSONObject jsonObject = json.getJSONObject(i);
System.out.println(((JSONObject)jsonObject.get("country")).get("code"));
}
} catch (JSONException je) {
je.printStackTrace();
}
}
输出:
FR
答案 1 :(得分:0)
<string>