Json转到下一个项目

时间:2017-07-16 13:21:28

标签: android json

我有一个动态JSON字符串,如下所示:

{"_id":"7","food_name":"Fiber Balance"},{"_id":"8","food_name":"Sport +"}

我能得到第一个名字,但不是第二个名字。这是我获得第一个(光纤平衡)的代码:

// Dynamic text
TextView textViewDynamicText = (TextView)getActivity().findViewById(R.id.textViewDynamicText);
String stringJSON = textViewDynamicText.getText().toString();

String stringFoodname = "";

try {
    JSONObject jsonObject = new JSONObject(stringJSON);
    Iterator<String> iter = jsonObject.keys();
    while (iter.hasNext()) {
        String key = iter.next();
        try {
            stringFoodname = jsonObject.getString("food_name");
            Toast.makeText(getContext(), stringFoodname, Toast.LENGTH_LONG).show();
        } catch (JSONException e) {
            // Something went wrong!
        }
    }
} catch (org.json.JSONException e) {
    // Something went wrong!
}

如何转到json字符串中的下一项?

1 个答案:

答案 0 :(得分:1)

如果你有多个数据需要使用数组,如果你想从你的json使用以下技巧获取所有数据,

  String json = "{\"_id\":\"7\",\"food_name\":\"Fiber Balance\"},{\"_id\":\"8\",\"food_name\":\"Sport +\"}";
            json = "[" + json + "]";
            try {
                JSONArray array = new JSONArray(json);
                for (int i = 0; i < array.length(); i++) {
                    JSONObject object = array.getJSONObject(i);
                    String foodName = object.getString("food_name");
                    Log.e("FoodName:", foodName);
                }
            } catch (JSONException e) {
                e.printStackTrace();
                Log.e("error", "json", e);
            }