Shashank Shekher
Necesito crear una cadena JSON como se muestra a continuación usando Jackson. Sé que ya se ha respondido una pregunta similar aquí: Crear un objeto json usando jackson
Pero mi cadena JSON esperada es un poco diferente de la del ejemplo anterior.
¿Cómo puedo formar el objeto JSON formateado a continuación en Java usando solo Jackson? Además, no prefiero crear un POJO separado para lograr esto.
Rendimiento esperado:
{
"obj1": {
"name1": "val1",
"name2": "val2"
},
"obj2": {
"name3": "val3",
"name4": "val4"
},
"obj3": {
"name5": "val5",
"name6": "val6"
}
}
Sachin Gupta
Prueba esto:
ObjectMapper mapper = new ObjectMapper();
ObjectNode rootNode = mapper.createObjectNode();
ObjectNode childNode1 = mapper.createObjectNode();
childNode1.put("name1", "val1");
childNode1.put("name2", "val2");
rootNode.set("obj1", childNode1);
ObjectNode childNode2 = mapper.createObjectNode();
childNode2.put("name3", "val3");
childNode2.put("name4", "val4");
rootNode.set("obj2", childNode2);
ObjectNode childNode3 = mapper.createObjectNode();
childNode3.put("name5", "val5");
childNode3.put("name6", "val6");
rootNode.set("obj3", childNode3);
String jsonString = mapper.writerWithDefaultPrettyPrinter().writeValueAsString(rootNode);
System.out.println(jsonString);
-
Intenté esto pero sigo obteniendo ObjectNode no se puede resolver a un tipo
– Zeusox
9 de abril de 2019 a las 18:01
-
esto agrega una barra invertida a las cadenas agregadas. ¿Cómo evitar la barra invertida?
– Deepak Selvakumar
2 de julio de 2019 a las 18:12
-
@DeepakSelvakumar si desea evitar esa barra invertida, reemplace
writerWithDefaultPrettyPrinter()
en la penúltima línea conwriter()
. ¡Eres bueno para ir!– Prasannjeet Singh
22/09/2021 a las 19:37
@Yogesh_D Si ve el formato de salida de mi pregunta y el que mencionó, son un poco diferentes. Necesito que la salida esté exactamente en el formato mencionado anteriormente en mi pregunta.
–Shashank Shekher
5 de diciembre de 2016 a las 6:04
Entonces, ¿quieres convertir esta cadena JSON a Java POJO?
– Arsen Davtyan
5 de diciembre de 2016 a las 6:24
@arsendavtyan91 No, lo necesito como una cadena JSON.
–Shashank Shekher
5 de diciembre de 2016 a las 6:26
Esta pregunta no es un duplicado. No debería haber sido marcado como duplicado.
– Clasificador
22 de junio de 2020 a las 15:58
@Jurass Crear un POJO aquí no tendrá ningún sentido ya que la entrada no es de tipo fijo. Puede diferir de muchas maneras. Espero que hayas leído la pregunta con claridad.
–Shashank Shekher
23 de noviembre de 2020 a las 3:33