Estoy tratando de salida a un objeto JSON en Jackson JSON. Sin embargo, yo no podía conseguir el objeto JSON con el siguiente código.

public class MyClass {

        private ObjectNode jsonObj;

        public ObjectNode getJson() {
              ObjectMapper mapper = new ObjectMapper();
              //some code to generate the Object user...
              mapper.writeValue(new File("result.json"), user);
              jsonObj = mapper.createObjectNode();
              return jsonObj;
        }

}

Después de que el programa se ejecuta, el archivo result.json contiene el correcto de datos JSON. Sin embargo, jsonObj está vacía (jsonObj={}). Miré hacia arriba, el Javadoc de ObjectMapper, pero no podía encontrar una manera fácil de escribir para un ObjectNode (objeto JSON en Jackson). No hay ningún método en ObjectMapper como la siguiente:

public void writeValue(ObjectNode json, Object value)

Cómo escribir en un ObjectNode directamente desde ObjectMapper?

OriginalEl autor tonga | 2013-08-19

1 Comentario

  1. 21

    Que usted necesita para hacer uso de ObjectMapper#valueToTree() lugar.

    Este va a construir equivalente JSON representación en Árbol. Funcionalmente mismo como si serializar valor en JSON y el análisis de JSON como el árbol, pero más eficiente.

    Usted no necesita escribir el User objeto a un archivo JSON, si no es necesario.

    public class MyClass {
    
        private ObjectNode jsonObj;
    
        public ObjectNode getJson() {
          ObjectMapper mapper = new ObjectMapper();
          //some code to generate the Object user...
          JsonNode jsonNode = mapper.valueToTree(user);
          if (jsonNode.isObject()) {
            jsonObj = (ObjectNode) jsonNode;
            return jsonObj;
          }
          return null;
        }
    }
    Correcto. Y si la salida a un archivo que se desea, JsonNode puede ser escrito en un archivo directamente con writeValue(file, jsonNode);
    Gracias. Esto funciona perfectamente.
    anyidea cómo publicar la cantidad de valor escrito utilizando jackson?

    OriginalEl autor Ravi Thapliyal

Dejar respuesta

Please enter your comment!
Please enter your name here