Страница 1 из 1

Многомерный ассоциативный массив

Добавлено: 31 дек 2013, 19:37
sanu0074
Сервер отдает массив вида (JSON):
$item[$i]["key"]=>"val";
Как создать такой же, только в Java, чтоб потом по нему пройтись циклом обрабатывая данные?

Я делаю так:

Код: Выделить всё

JSONObject jsonObj = new JSONObject(out);
          
            item = jsonObj.getJSONArray("item");

            for (int i = 0; i < item.length(); i++) {
                JSONObject c = item.getJSONObject(i);
                 
                String url_id = c.getString("url_id");
                String name = c.getString("name");
                String icon = c.getString("icon");
                
                HashMap<String, String> tmp = new HashMap<String, String>();

                tmp.put("url_id", url_id);
                tmp.put("name", name);
                tmp.put("icon", icon);
                Log.d(LogTag, "OUT tmp *** "+tmp);

...
А дальше что делать? мне tmp нужно закинуть в многомерный массив, item[tmp].

Чтоб например потом, при таком обращении, item[7][name], получить имя элемента.

Я незнаю как это реализовать, может есть какие-то другие способы более подходящие для моего случая?

Re: Многомерный ассоциативный массив

Добавлено: 31 дек 2013, 21:21
sanu0074
или как с помощью либы Gson достичь необходимого результата?

Re: Многомерный ассоциативный массив

Добавлено: 02 янв 2014, 14:18
altwin
[syntax=java]
JSONArray myArray = (JSONArray) JSONSerializer.toJSON(stationData);
//Slightly hard coded here.
String[][] test = new String[myArray.getJSONArray(0).size()][myArray.getJSONArray(1).size()];

for(int i = 0; i < myArray.size(); i++){
for(int j = 0; j < myArray.getJSONArray(i).size(); j++){
test[j] = (String) myArray.getJSONArray(i).get(j);

}
}
[/syntax]