将Json Object包含在另一个Json中

时间:2018-05-18 21:50:39

标签: java android json

我遇到了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

enter image description here

这是我的代码

  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;当我运行应用程序时

感谢您的帮助

2 个答案:

答案 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>