2015-04-27 6 views
0

Могу ли я узнать, как получить объект JSON из массива json?Получить вложенный объект JSON из массива JSON

JSON:

[ 
    { 
     "id": 1, 
     "user": { 
      "id": 20710, 
      "username": "abc", 
      "first_name": "", 
      "last_name": "", 
     }, 
     "action": { 
      "name": "xxx", 
      "date": 19/01/01, 
     }, 
    }, 
    { 
     "id": 2, 
     "user": { 
      "username": "xyx", 
      "first_name": "xxx", 
      "last_name": "yyy", 
     }, 
     "action": { 
      "name": "xxx", 
      "date": 19/05/01, 
     }, 

    },] 

Я хочу, чтобы получить имя пользователя из этих пользователей в списке, но я не могу получить значение, когда я получаю эту JSON из апи как JSONArray.

Мой код:

public void onSuccess(int statusCode, Header[] headers, JSONArray response) { 
        Log.d("Create Response", response.toString()); 

        ArrayList<String> list = new ArrayList<String>(); 
        JSONArray jsonArray = response; 
        try { 
        if (jsonArray != null) { 
         int len = jsonArray.length(); 
         for (int i=0;i<len;i++){ 
          JSONObject c=response.getJSONObject(1); 
          String id = c.getString(i); 

          HashMap<String, String> map = new HashMap<String, String>(); 

          map.put("id", id); 
           feeds_List.add(map); 
         } 
        } 

Я не могу использовать

JSONObject object=JsonArray.getJSONObject("user"); 

здесь,

это только принять Int для getJSONObject("user"); если JSONArray

+0

Вам удалось разобрать JSON в массив JSON? Если да, какова ваша следующая проблема, если нет, почему бы и нет? – Smutje

+0

@Smutje я могу получить json в json-массив, но тогда я не знаю, как получить json-объект «внутри», 1) я могу получить значения, такие как id, но не могу получить объект как «пользователь» и «действие «поскольку он вложен. – enzo

ответ

4

Вы можете использовать, как это также .Показать ответ Строка: userInfo

ArrayList<String> usernames = new ArrayList<String>(); 
JSONArray userList = new JSONArray(userInfo); 
for (int j = 0; j < userList.length(); j++) { 
    JSONObject userObject = new JSONObject(userList.getString(j)); 
    String user = userObject.getString("user"); 
    JSONObject usernameInfo = new JSONObject(user); 
    usernames.add(usernameInfo.getString("username")); 

} 

Попробуйте, если не работает, пожалуйста, укажите мне в комментарии.

Смежные вопросы