동일한 문자열 형식을 유지하면서 {"a": 1.0}
문자열을 일반 Java 객체로 읽고 싶습니다. 그러나 시도 할 때 Jackson은 자동으로 내부 표현을 {a = 1}
으로 바꿉니다. 즉, {a = 1}
대신 {"a": 1.0}
을 인쇄하려면 다음 코드를 어떻게 얻을 수 있습니까? 다른 프로그램 제약으로 인해 Object
으로 읽어야합니다.Java with Jackson의 일반 객체 직렬화
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());
}
}
}
이것은 나에게 의미가 없습니다. Object에는 키 "a"에 대한 속성이 없으므로 어떻게 읽을 수 있습니까? 이 속성으로 클래스를 만들 필요가 없습니까? –
어쩌면 그는 Jackson이 어떻게 든 예상되는 유형을 텔레파시로 추측한다고 가정하고있을 것입니다. 실제로 Object.class 유형은 잭슨과 특별한 처리 방식을 가지고 있습니다 :지도, 목록 및 래퍼 유형 (모든 개체가 분명히 있음)에 "자연스러운") – StaxMan