【发布时间】:2014-01-24 04:03:26
【问题描述】:
我有一个这样的 JSON 字符串 -
String jsonString1 = "{\"warning\": \"user_id not found\", \"user_id\": some_user_id}";
or
String jsonString2 = "{\"error\": \"user_id for wrong partition\", \"user_id\": some_user_id, \"partition\": some_partition}";
我正在尝试将上面的 JSON 字符串与下面的类进行映射。我在这里使用 GSON -
public class ErrorResponseTest {
private String error;
private String user_id;
private String partition;
private String client_id;
// getters or setters
}
问题陈述:
我想将上述 JSON 字符串中的 warning 和 error 映射到上述类中的 error 变量。但目前它仅将jsonString2 映射到错误变量..
使用下面的代码,我可以反序列化jsonString2,然后在错误变量中显示user_id for wrong partition。但是如果我尝试反序列化jsonString1,那么它会在错误变量中显示空值..
ErrorResponseTest hello = new Gson().fromJson(jsonString2, ErrorResponseTest.class);
是否可以将warning 映射到我上面的类中的错误变量?这意味着如果我使用上述类反序列化jsonString1,我希望在错误变量中有user_id not found..
可以吗?
【问题讨论】:
-
不要过于复杂。创建两个类,一个映射
jsonString1,另一个映射jsonString2。吻。如果您是 DRYer,请创建一个包含公共属性的超类。
标签: java json deserialization gson