Я пытаюсь выполнить итерацию через дерево JsonNode, и я написал следующий фрагмент, который перебирает дочерние узлы корневого узла и выводит из него текст, который, как я полагаю, будет именем поля.Можно ли предположить, что все дети корневого узла в Джексоне являются именами полей?
JsonNode rootNode = new ObjectMapper().readTree(jsonParser);
for (JsonNode node : rootNode){
String fieldName = node.asText(); // <- is it safe to assume this?
JsonNode value = node.get(fieldName);
}
Я прочитал this similar post, но принятый ответ просто не работает, потому как fields
и fieldNames
возвращение iterator
, которые не могут быть итерированным через foreach
петли только сам по себе as far as I know.
Другие наиболее ответные ответы работают, но мне было интересно, остается ли предположение вышеприведенного фрагмента.
Принимаемые ответы: _Since 'JsonNode # iterator()' не включает ключи_ со ссылкой на javadoc для получения более подробной информации. –
Если вы запутались в инструкции foreach, [здесь] (http://stackoverflow.com/questions/85190/how-does-the-java-for-each-loop-work), как это работает в отношении ' итератора() '. –