我有以下两种类型的JSON字符串,它们都有一个"类型"字段,但"内容"字段结构不同。
我愿意将它们解析为Java对象。现在我有两个类:
现在的问题是,我必须首先解析json消息的“type”部分,然后才能决定使用哪个类来继续解析“content”。
有没有一种方法可以进行“两步”解析?
我已经尝试了以下方法:
首先将json消息解析为这个类的实例:
根据类的解析“类型”字段,我可以决定使用哪个类,即使用
{"type": "Login", "content": {"username": "a", "password": "b"}}
{"type": "Forward", "content": {"deviceId": "a", "password": "b"}}
我愿意将它们解析为Java对象。现在我有两个类:
class Login {
String username;
String password;
}
class Forward {
String deviceId;
}
现在的问题是,我必须首先解析json消息的“type”部分,然后才能决定使用哪个类来继续解析“content”。
有没有一种方法可以进行“两步”解析?
我已经尝试了以下方法:
首先将json消息解析为这个类的实例:
class Request {
RequesType type;
String content;
}
根据类的解析“类型”字段,我可以决定使用哪个类,即使用
res = gson.fromJson(request.content, Forward.class);
或res = gson.fromJson(content, Login.class)
;但是我收到的json如下:{"type": "Forward", "content":{"deviceId":"1"}}
我遇到了一个错误,期望是字符串类型,但实际上是对象类型,所以我不知道该怎样继续操作。欢迎提出任何建议!