Как анализировать json с Android

#android #json

#Android #json

Вопрос:

как получить данные json с помощью android
my json следующим образом:

 [
  {
    "meta": {
      "next_id": 30
    }
  },
  {
    "data": [
      {
        "category_id": "2",
        "name": "Anniversary Facebook Status",
        "count": "53"
      },
      {
        "category_id": "4",
        "name": "April Fool Status",
        "count": "16"
      },
      {
        "category_id": "79",
        "name": "Wise Facebook Status",
        "count": "90"
      }
    ]
  }
]
  

Мой код

     JSONObject jsonobject = JSONfunctions.getJSONfromURL("URL");
    JSONArray jsonarray = jsonobject.getJSONArray("data");
    for (int i = 0; i < jsonarray.length(); i  ) {
        jsonobject = jsonarray.getJSONObject(i);
        Log.i("ID", jsonobject.getString("category_id"));
        Log.i("Name", jsonobject.getString("name"));
    }
  

я хочу получить массив «данных».
пожалуйста, помогите, если кто-нибудь знает:

Спасибо.

Комментарии:

1. пробовали ли вы что-нибудь, если да, кроме кода??

2. <код> JSONObject jsonobject = JSONfunctions.getJSONfromURL(«URL»); JSONArray jsonarray = jsonobject.getJSONArray(«данные»); for (int i = 0; i < jsonarray.length(); i ) { jsonobject = jsonarray.getJSONObject(i); Log.i(«ID», jsonobject.getString(«category_id»)); Log.i(«Name», jsonobject.getString(«name»)); } </code> я пытаюсь получить json таким образом.

3. Пожалуйста, разместите свой код в вопросе, отредактировав его. Кроме того, разве вы не заметили, что «массив данных» находится внутри объекта, который находится внутри другого массива?

Ответ №1:

Попробуйте это.

 JSONArray total_array = new JSONArray(string json);
JSONArray data_array = total_array.getJSONObject(1).getJSONArray("data");
for(int i = 0; i < data_array.length(); i  ){
     JSONObject json_data = data_array.getJSONObject(i);
     String category_id = json_data.getString("category_id");
}
  

Ответ №2:

Возможно, это может вам помочь :

 JSONArray jsonArray;
    try {

        jsonArray = new JSONArray("YOUR JSON DATA");
        Log.v("MAIN ACTIVITY", "JSON OBJECT :" jsonArray.getJSONObject(0).getJSONObject("meta").getString("next_id"));
        JSONArray dArray    =   jsonArray.getJSONObject(1).getJSONArray("data");
        for(int i=0;i<dArray.length();i  )
        {
            JSONObject jsonObject   =   dArray.getJSONObject(i);

            Log.v("MAIN ACTIVITY", "JSON DATA :" jsonObject.getString("category_id"));
            Log.v("MAIN ACTIVITY", "JSON DATA :" jsonObject.getString("name"));
            Log.v("MAIN ACTIVITY", "JSON DATA :" jsonObject.getString("count"));
        }
    }
    catch (JSONException e1) {
        e1.printStackTrace();
    }
  

Комментарии:

1. Спасибо, это мне очень помогло.

Ответ №3:

чтобы получить массив json

 JSONArray jsonArray = new JSONArray(jsonStr);
JSONArray dataArray= jsonArray.getJSONObject(1).getJSONArray("data");

    for(int i=0;i<dataArray.length();i  ){
         JSONObject json_data = dataArray.getJSONObject(i);
         String category_id = json_data.getString("category_id");
         String name = json_data.getString("name");
         String count = json_data.getString("count");
    }
  

Для получения дополнительной информации см. Руководство по синтаксическому анализу Android JSON

Ответ №4:

Загляните в библиотеку Gson от Google. Это проще, чем разбирать поля вручную с помощью прилагаемой JSON lab.