我有两个具有已知模式的具体对象(完全不同)。然后我从客户端获取JSON并希望将其映射到此对象之一。
是否有可能在转换之前以某种方式检查类型,或者我必须尝试将其转换为每个对象并检查解析是否正确?
编辑: 例如:
{"id":"1","name":"oneone"}
和第二
{"age":50,"type":"elephant"}
答案 0 :(得分:2)
就个人而言,我会使用GSON或类似的东西解析JSON,并查找其中一种JSON格式所特有的密钥,例如" age"。实际上,你也可以像@ user743414那样提到String。
更新:
以下是一些反映我正在谈论的内容的代码
JsonParser jsonParser = new JsonParser();
JsonObject jsonObject = jsonParser.parse(jsonString).getAsJsonObject();
Set<String> keys = jsonObject.keySet();
if(keys.contains("age")){
//Map to one object
} else {
//Map to the other object
}
答案 1 :(得分:0)
如果你确定两个JSON的模式都是常量,那么在这个例子中只需要使用像age这样的唯一参数,并检查它是否存在于JSON中。
If (String.contains(“age”)) {
//then it’s 2nd JSON
} else {
//then it’s 1st JSON
}