Me gustaría leer en la cadena {"a": 1.0}
como un objeto genérico de Java, manteniendo el mismo formato de cadena. Sin embargo, cuando intento, Jackson cambia automáticamente la representación interna a {a = 1}
. En otras palabras, ¿cómo puedo obtener el siguiente código para imprimir {"a": 1.0}
en lugar de {a = 1}
? Tenga en cuenta que tengo que leerlo como Object
(debido a otras limitaciones del programa).serialización genérica de objetos en Jackson con Java
import org.codehaus.jackson.map.ObjectMapper;
public class Main {
public static void main(String[] args) {
try
{
ObjectMapper mapper = new ObjectMapper();
Object myObject = mapper.readValue("{\"a\": 1.0}", Object.class);
System.out.println(myObject.toString());
}
catch (Exception e)
{
e.printStackTrace();
System.err.println(e.getMessage());
}
}
}
Esto no tiene sentido para mí. El objeto no tiene ninguna propiedad para la tecla "a", entonces, ¿cómo puede leerse así? ¿No necesitas crear una clase con esta propiedad? –
Tal vez está asumiendo que Jackson de alguna manera calcula telepáticamente el tipo esperado ... lo que realmente ocurre es que Object.class tiene un manejo especial con Jackson: creará mapeos "naturales" a Maps, Lists y tipos de wrappers (que obviamente son todos Objetos)) – StaxMan