Печать значения строки объекта, расположенного в файле JSON, с использованием JAVA Jackson - PullRequest
0 голосов
/ 23 мая 2018

Я буду упрощать - пытаясь напечатать значение имени пользователя ('user') этого JSON-файла с помощью JACKSON:

{
"creds" : {
          "user": "Y9CJG1756",
          "pass": "12222#$1"
 },
"env": {
        "qa": {
               "url": "https://www.walla.com/"
         }
  }
}

Я запускаю эту функцию, но не смог найти способ распечататьвся строка объекта 'creds', а не просто имя пользователя.

public static void isJsonStringWorks(String filePath) {
    try {
        JsonNode objectValue;

        byte[] jsonData = Files.readAllBytes(Paths.get(filePath));

        ObjectMapper objectMapper = new ObjectMapper();

        JsonNode rootNode = objectMapper.readTree(jsonData);
        objectValue = rootNode.get("creds");
        System.out.println("object is: " + objectValue + " ,\n" + rootNode);
    } catch (Exception e) {
        System.out.println("Could not read the JSON file");
    }

}

Очень ценю помощь.

Ответы [ 2 ]

0 голосов
/ 23 мая 2018

вы на правильном пути.Вы можете позвонить objectValue.get('user')

0 голосов
/ 23 мая 2018

Правильный код будет:

objectValue = rootNode.get("creds").get("user").asText()

Также вы должны рассмотреть следующие варианты:

  • Ввести представление Java вашей модели данных и прочитать исходную строку JSONкак объект Java (используя метод objectMapper.readValue(...)).После этого можно будет обращаться к значениям, как к обычным Java-бинам (root.getCreds().getUser())

  • Использование JsonPath для доступа к "глубоким" значениям внутри JSON для упрощения значений JSONуважать.Например, кредиты / пользовательская ценность могут быть получены как:

    String json = "...";
    Object document = Configuration.defaultConfiguration().jsonProvider().parse(json);
    String value = JsonPath.read(document, "$.creds.user")
    
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...