如何将JSON字符串中的两个不同变量值映射到单个类变量?

时间:2014-01-24 04:03:27

标签: java json deserialization gson

我有一个像这样的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字符串中的warningerror映射到我上面的类中的error变量。但目前只将jsonString2映射到错误变量..

使用下面的代码,我可以反序列化jsonString2,然后在错误变量中显示user_id for wrong partition。但是,如果我尝试反序列化jsonString1,那么它在错误变量中显示空值..

ErrorResponseTest hello = new Gson().fromJson(jsonString2, ErrorResponseTest.class);

是否可以将warning映射到我上面的类中的错误变量?这意味着如果我使用上面的类反序列化jsonString1,我希望在错误变量中包含user_id not found ..

有可能吗?

1 个答案:

答案 0 :(得分:0)

您可以考虑3种方法:

我更喜欢第三种方法,所以你只有一个类,并且json错误消息模型更具有自包含性,更具可读性。比如说。