gson을 사용하여 JSON 표현에서 POJO 객체를 비 직렬화합니다.GSON을 사용하여 JSON이 포함 된 객체의 비 직렬화
내 POJO 중 하나의 필드 중 임의의 JSON 데이터를 포함하고 싶습니다. 예를 들어 :
{
"stringField": "booger",
"jsonField" :
{
"arbitraryField1": "foo"
}
}
을하고 결과 B.jsonField
값 foo
의 arbitraryField
으로 된 JSONObject가 포함되어 있습니다
class B {
public String stringField;
public JsonObject jsonField;
}
나는 다음과 같은 JSON에 Gson.fromJson(json, B.class)
를 호출 할 수 싶습니다.
그러나이 작업을 시도하면 jsonField
은 항상 빈 개체 ({}
)입니다.
new Gson().fromJson("{ foo: 1 }", JsonObject.class)
내가 필드를 포함하는 객체가 내가 가지고 어떻게 값 1
의 foo
라는 이름의 반환 위를 기대 : 사실, 더 일반적으로, 다음은 항상 빈 객체를 반환 것으로 보인다 gson은 json을 POJOS에 deserialize 할 때 임의의 json 데이터를 보존합니까?
물론, 사용자 정의 디시리얼라이저를 작성할 수 있습니다. 내가 제안한 대안에서 본질적으로 무엇을했는지. 하지만 해킹처럼 보입니다. 사용자 지정 디시리얼라이저가 포함되지 않은 방법이 있다면 더 좋을 것입니다. – emmby
게시 할 때 질문을 조사하고 답을 찾지 못했습니다. 원래의 질문은 사용자 지정 디시리얼라이저에 대해 알고 있고 뭔가 더 우아한 것을 찾고 있다는 표시가 없습니다. 의사가 표준 방법 인 것처럼 보입니다. –