Из JSONObject в array

Рейтинг: 0Ответов: 1Опубликовано: 31.10.2014

Есть вот такой JSON:

{"converter":[
    {"name":"Масса",
      "valnames":{
          "mm":"Миллиметры",
          "cm":"Сантиметры",
          "dm":"Дециметры",
          "m":"Метры",
          "km":"Километры",
          "inch":"Дюймы",
          "foot":"Футы"
      },
      "valint":{
          "mm":"1",
          "cm":"10",
          "dm":"100",
          "m":"1000",
          "km":"1000000",
          "inch":"25.4",
          "foot":"304.8"
      }
    }
]}

Вот код:

JSONObject jsonObj = new JSONObject(jsonStr);
JSONArray data  = jsonObj.getJSONArray("converter");
JSONObject c = data.getJSONObject(i);
final String name=c.getString("name");
JSONObject valnames = c.getJSONObject("valnames");
JSONObject valint = c.getJSONObject("valint");

Количество значений в объектах valnames и valint одинаково, но сколько, не известно.

Как мне их по порядку занести в массив?

Ответы

▲ 2Принят

Если ключи в обоих объектах одинаковы, то как-то так:

Iterator<String> keys = jCard.keys();
while (keys.hasNext()) {
    String key = keys.next();
    String valname = valnames.getString(key);
    double valint = valints.getDouble(key);
    // Заносим valname и valint в нужный массив, в нужном формате
};