Как бы я получить доступ к этому ключу в объекте JSON в Java? - PullRequest
0 голосов
/ 06 октября 2019

У меня были некоторые проблемы с перебиранием объекта JSON в Java. В частности, я хотел бы сохранить каждое значение для «name» в строковом массиве «nameList». Я посмотрел, как это сделать, и не нашел выхода из этой ситуации.

String[] nameList = new String[]{};
{
  "data": {
    "Narray": {
      "0": 
      {
        "_id": "001",
        "name": "studio",
        "date": "02141992"
      },
      "1": 
      {
        "_id": "002",
        "name": "venue",
        "date": "09041999"
      }
    }
  }

Ответы [ 2 ]

0 голосов
/ 07 октября 2019

Я предполагаю, что вы хотите сохранить только каждое значение name в String[] (строковый массив), поэтому вам не нужно десериализовать строку JSON в POJO, просто используйте базовый API длядостигните того, что вы хотите, следующим образом:
Кстати, ваша строка JSON недействительна, вы пропустили правую скобку.

    ObjectMapper mapper = new ObjectMapper();
    JsonNode nArray = mapper.readTree(jsonStr).get("data").get("Narray");

    String[] nameList = new String[nArray.size()];
    for (int i = 0; i < nArray.size(); i++) {
        nameList[i] = nArray.get(String.valueOf(i)).get("name").asText();
    }
    System.out.println(Arrays.toString(nameList));

Вывод на консоль:

[студия, место проведения]

0 голосов
/ 06 октября 2019

В идеале вы бы хотели, чтобы Narray был реальным массивом JSON, заключенным в [], где каждый элемент - это другой объект, содержащий нужное вам свойство, например:

  {
    "Narray": [
      {
        "_id": "001",
        "name": "studio",
        "date": "02141992"
      },
      {
        "_id": "002",
        "name": "venue",
        "date": "09041999"
      }
    ]
  }

Затем вы можете использовать Джексон для декодирования строки JSON в структуру POJO. Когда у вас есть объекты, вы можете перебирать массив и извлекать необходимое свойство в список.

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