7

拜托,请帮帮我。我正在做一个项目,我正在从 Web 服务以 JSON 格式获取数据。我正在尝试解析它,但是我无法做到。我有这个 json-data-

 {
        "response": {
            "status": {
                "code": "1",
                "message": "sucess",
                "user_id": "1"
            },
            "foods": [
                {
                    "char": "A",
                    "content": [
                        {
                            "food_name": "add Malt"
                        },
                        {
                            "food_name": "a la mode"
                        },
                        {
                            "food_name": "Almonds"
                        }
                 ]
            },
            {
                "char": "Z",
                "content": [
                    {
                        "food_name": "Zebra Cakes"
                    },
                        {
                            "food_name": "Zucchini, Baby"
                        },
                        {
                            "food_name": "zxc"
                        }
                    ]
                }
            ]
        }
    }

从这里我成功地获取了“foods”数组,但是当我尝试获取“content”数组和 food_name 数据时我被卡住了。

我正在使用此代码,但我没有得到任何解决方案,请检查此代码。

protected String doInBackground(String... args) {
                // Building Parameters
                List<NameValuePair> nameValuePairs = new ArrayList<NameValuePair>();
                nameValuePairs.add(new BasicNameValuePair("method","eat_tracking_details"));
                nameValuePairs.add(new BasicNameValuePair("uid",userid));
                // getting JSON string from URL
                JSONObject json = jsonParser.makeHttpRequest(JSONParser.urlname,"GET", nameValuePairs);
                //System.out.println("****json*"+json);
                if (json != null) {
                    try {
                        JSONObject response = json.getJSONObject("response");
                        JSONObject status = response.getJSONObject("status");
                        code = status.getString("code");
                        JSONArray FoodArray = response.getJSONArray("foods");
                        for (int i = 0; i < FoodArray.length(); i++) {
                            String character = FoodArray.getJSONObject(i).getString("char");
                            System.out.println("*****character****************"+character);
                            JSONArray FoodNameArray = new JSONArray(FoodArray.getJSONObject(i).getString("content"));
                            System.out.println("====================///////////"+FoodNameArray);

                            for (int j = 0; j <FoodNameArray.length(); j++) {
                                String Foodname = FoodArray.getJSONObject(j).getString("food_name");
                                System.out.println("@@@@@@@@@@@@@"+Foodname);
                            }
                        }

                    } catch (JSONException e) {
                        // TODO: handle exception
                    }
                }

检查此 URL 以获取 Web 服务响应 - WEB-SERVICE URL

4

2 回答 2

4

您需要用以下代码替换您各自的代码部分:

for (int j = 0; j < FoodNameArray.length(); j++) {
    String Foodname = FoodNameArray.getJSONObject(j).getString("food_name");
    System.out.println("@@@@@@@@@@@@@" + Foodname);
}
于 2013-10-15T07:58:53.017 回答
2

我相信最好的方法是使用 GSON 库 ( http://code.google.com/p/google-gson/ )。在这种情况下,您只需要制作模型类而不必担心解析逻辑。

于 2013-10-15T07:30:02.343 回答