JsonNode 트리를 통해 반복을 시도하고 루트 노드의 자식 노드를 반복하고 텍스트를 가져 오는 다음 코드 단편을 작성했습니다.이 필드는 필드 이름으로 간주됩니다.Jackson에서 루트 노드의 모든 자식이 필드 이름이라고 가정하는 것이 합리적입니까?
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을 읽고,하지만 허용 대답은 단순히 작동하지 않습니다 단지 자체 as far as I know하여 foreach
루프를 통해 반복 할 수없는 두 fields
및 fieldNames
반환 iterator
때문에.
위의 스 니펫의 가정이 여전히 유효한지 다른 질문이 있습니다.
JsonNode # iterator()에는 javadoc에 대한 링크가있는 keys_가 포함되어 있지 않으므로 자세한 내용을 보려면 _Since를 참조하십시오. –
foreach 문에 대해 혼란 스러우면 [here 's] (http://stackoverflow.com/questions/85190/how-does-the-java-for-each-loop-work)와 관련하여 ' iterator()'. –