在不知道格式的情况下解析JSON(可以是两个不同对象之一)

问题描述 投票:0回答:2

我有两个具有已知模式的具体对象(完全不同)。然后我从客户端获取JSON并希望将其映射到此对象之一。

是否有可能在转换之前以某种方式检查类型,或者我必须尝试将其转换为每个对象并检查解析是否正确?

编辑:在例子中:

{"id":"1","name":"oneone"}

第二个

{"age":50,"type":"elephant"}
java json
2个回答
2
投票

就个人而言,我会使用GSON或类似的东西解析JSON,并查找其中一种JSON格式唯一的密钥,例如“age”。实际上,你可以像@ user743414那样提到一个字符串。

更新:

这里有一些代码可以反映我在说什么

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
}

0
投票

如果您确定两个JSON的模式都是常量,那么只需在此示例中采用像age这样的唯一参数,并检查它是否存在于JSON中。

If (String.contains(“age”)) {
  //then it’s 2nd JSON
} else {
  //then it’s 1st JSON
}
© www.soinside.com 2019 - 2024. All rights reserved.