Тип выражения должен быть типом массива, но он разрешается в JSONArray. - PullRequest
0 голосов
/ 11 июня 2019

Я получаю объект JSON, затем преобразую его в массив и пытаюсь получить доступ к свойствам или значениям, но получаю ошибку как The type of the expression must be an array type but it resolved to JSONArray

Мне нужно сохранить данные JSON в моей базе данных, поэтому я и являюсьполучение всех значений в массиве

Мой код

protected void doPost(HttpServletRequest request, HttpServletResponse response)
        throws ServletException, IOException {

    Scanner scanner = new Scanner(request.getInputStream());
    String imageData = scanner.nextLine();
    System.out.println(imageData);
    JSONObject jsonObj = new JSONObject(imageData);
    JSONArray jsonArray = jsonObj.getJSONArray("ImageData");

    JSONObject innerObj = new JSONObject(jsonArray[0]); // this one is throwing error 
    // eror is `The type of the expression must be an array type but it resolved to JSONArray`
    String counter = innerObj.getString("Counter");
    String name = innerObj.getString("Name");
    String isActive = innerObj.getString("IsActive");     
    System.out.println(counter);

}

System.out.println(imageData); it prints -->

{"ImageData":[{"Counter":"Counter A","Name":"CountA1.jpg","IsActive":"Y"},{"Counter":"Counter A","Name":"CountA2.jpg","IsActive":"Y"}]}

System.out.println (jsonArray);Это печатает ->

[{"Counter":"Counter A","IsActive":"Y","Name":"CountA1.jpg"},{"Counter":"Counter A","IsActive":"Y","Name":"CountA2.jpg"}]

Я прокомментировал строку в моем коде, где я получаю ошибку

Ответы [ 2 ]

1 голос
/ 11 июня 2019

Использование getJSONObject метод

JSONObject innerObj =  jsonArray.getJSONObject(0);

Возвращает значение по индексу, если оно существует и является JSONObject.

0 голосов
/ 11 июня 2019

Вы не можете добавить квадратные скобки в JSONArray, как jsonArray [0], Вы должны использовать jsonArray.getJSONObject ("index");

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...