2011-03-21 126 views
8

我想将json对象反序列化成java bean。 我面临的主要问题是我想将json字符串的字段object视为纯字符串,即使它包含可能正确的json对象。 JSON的结构是这样的:将json字段反序列化为与gson的纯字符串

{ 
    "type":"user", 
    "object":{ 
     "id":"1", 
     ...} 
} 

我怎么能告诉GSON忽略object值,以便它不会反序列化为一个对象?我只想将它映射到我的bean中的普通String字段,以便我可以为它设置适当的反序列化,一旦我从type字段获得类型。

+0

我设法部分反序列化观看这个答案的对象:http://stackoverflow.com/questions/3769473/what-is-the-easiest-way-to-parse-json-using-gson-when-the -element-to-parse-is-an/4455636#4455636 – mox601 2011-03-21 14:15:08

回答

1

我不知道你的问题是否解决。我遇到类似的问题,这里是我如何工作吧:

JsonDeserializer可以让你让你自己的适配器来反序列化**:

class JavaBeanDeserializer implements JsonDeserializer<JavaBeanObject>() { 
    public JavaBeanObject fromJson(JsonElement json, Type typeOfT, JsonDeserializationContext context) throws JsonParseException { 
    // return JavaBeanObject built using your logic. 
} 

您已经注册JavaBeanDeserializer到GSON对象建立它的时候:

Gson gson = new GsonBuilder().registerTypeAdapter(JavaBeanObject.class, new JavaBeanDeserializer()).create(); 
+0

没有尝试您的解决方案,但是通过之前的注释中的链接解决了这个问题 – mox601 2011-04-13 07:19:04

10

就宣布作为类型的JSONObject

class ExampleJsonModel { 
    @SerializedName("type") 
    public String type; 

    @SerializedName("object") 
    public JsonObject object; 
} 
相关问题