парсер json одного массива в java - PullRequest
0 голосов
/ 04 декабря 2018

У меня есть строка JSON, которую мне нужно проанализировать с помощью Java.Формат -

input = {"data":{"value":[654,123]},"address":null,"code":null}

Из этого мне нужно только "значение": [654,123]

Я пытался, но это -

JSONParser parse = new JSONParser();
JSONObject jobj = (JSONObject)parse.parse(input);

JSONArray jsonarr_1 = (JSONArray) jobj.get("value");
System.out.println(jsonarr_1);

for(int i=0;i<jsonarr_1.size();i++)
{
    JSONObject jsonobj_1 = (JSONObject)jsonarr_1.get(i);
    JSONArray jsonarr_2 = (JSONArray) jsonobj_1.get("value");
    System.out.println("values under value array");
    System.out.println(jsonarr_2);
}   
}

это первый уровень массива json, дающий нулевое исключение

1 Ответ

0 голосов
/ 04 декабря 2018

Сначала необходимо получить данные объекта Json, а затем прочитать массив значений из этого.Вы можете увидеть рабочий код ниже:

    String input = "{\"data\":{\"value\":[654,123]},\"address\":null,\"code\":null}";

    JSONParser parse = new JSONParser();
    JSONObject jobj = (JSONObject) parse.parse(input);

    JSONObject dataObj = (JSONObject) jobj.get("data");
    JSONArray jsonarr_1 = (JSONArray) dataObj.get("value");
    System.out.println(jsonarr_1);

    for (int i = 0; i < jsonarr_1.size(); i++) {
        System.out.println("values under value array");
        long value = (long) jsonarr_1.get(i);
        System.out.println(value);
    }
...