#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.