2015-09-22 24 views
9

Bazı verilerle com.fasterxml JsonNode nesnesine sahibim. Verileri üzerinde biraz manipülasyon yapmam lazım. Cevap için baktım ama düzgün bir şekilde anlamadım. Lütfen bana JsonNode verilerini nasıl değiştireceğimi önerebilir misin?JsonNode öğesinin ObjectNode'a dönüştürülmesi

ObjectNode objectNode = (ObjectNode)filterJson; 

ama onun veren aşağıdaki özel durum aşağıdaki gibi Ben de .... ObjectNode için JsonNode dönüştürmek için çalıştık

java.lang.ClassCastException: com.fasterxml.jackson.databind.node.TextNode cannot be cast to 
com.fasterxml.jackson.databind.node.ObjectNode 

yardım lütfen !!

+1

ObjectNode değerini objectNode değerine dönüştürmeye çalışıyorsunuzdur. ObjectNode {"test": "value"} anlamına gelir ve büyük olasılıkla typecasting value node'dur. Kodu paylaşabilirseniz, hangi düğümün – Optional

cevap

13

Son olarak, aşağıdaki gibi bir çözüm ...

JsonNode jsonNode = Json.toJson("Json String"); 
ObjectNode node = (ObjectNode) new ObjectMapper().readTree(jsonNode.asText()); 
//perform operations on node 
jsonNode = (JsonNode) new ObjectMapper().readTree(node.toString()); 

veya aşağıda başka bir ...

ObjectNode node = (ObjectNode) new ObjectMapper().readTree("Json String") 
//perform operations on node 
jsonNode = (JsonNode) new ObjectMapper().readTree(node.toString()); 

var ama bu iyi bir yaklaşım olup olmadığını bilmiyorum ? Yukarıdakilerden daha iyi olan varsa lütfen bana bildirin. Teşekkür ederiz!

12

Bu basit bir yolla bir ObjectNode bir JsonNode dönüştürebilirsiniz:

ObjectNode objectNode = jsonNode.deepCopy(); 

Available from Jackson 2.0 ve Jackson 2.4.0

-2

ile test Ben bunu herhangi bir kere deneyin, Tamam olacak! Özellikleri eşlemek için yalnızca bir Student Class tanımlarsınız. Sonra jsonNode'u Student Nesnesine dönüştürebilirsiniz.

Student student = objectMapper.convertValue(jsonNode1, Student.class);

Ben bu ihtiyaca uygun olacağını düşünüyorum!

+0

değerini kullanmanız gerektiğine dair önerilerde bulunabilirsiniz. Soru, bir Nesne örneğinde değil, bir com.fasterxml.jackson.databind.node.ObjectNode dosyasında bir JsonNode'un nasıl dönüştürüleceğidir. –

İlgili konular