使用GSON解析多种类型的json

时间:2015-12-28 13:51:33

标签: java json gson

我使用GSON库以这种方式解析消息:

RewriteRule ^/?q=content/([0-9]+) /?q=content/$1&nip=1

现在我需要用完全不同的表单解析另一条消息。消息是:

Message m = new Gson().fromJson(message, Message.class);

,而新格式为:

{foo: "aaa", bar: "bbb" }

如何区分这两种格式?

2 个答案:

答案 0 :(得分:0)

你问的是GSon / Jackson不是这样设计的。您正在使用ObjectMapping API,它允许您将json转换为预定义的类。

如果您的例子:

AddUnit

Message m = new Gson().fromJson(message, Message.class); 应始终使用MessageString foo进行映射操作。

如果你知道你只有两个字符串值,但总是有不同的字段,请注意String bar并创建通用灵活的jsonParser,它总是有2个字符串值。解析时,您将手动将其设置为适当的字段。

答案 1 :(得分:0)

创建一个包含4个字段的Message课程:foobartag1tag2

如果foobar为空,那么您会收到第二种消息。如果tag1tag2为空,那么您会收到第一种消息。