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

标签 java json

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

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

编辑: 例如:

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

第二个

{"age":50,"type":"elephant"}

最佳答案

就我个人而言,我会使用 GSON 或类似的东西解析 JSON,并查找其中一种 JSON 格式所特有的键,例如“age”。实际上,您也可以像 @user743414 提到的那样将其作为字符串来执行。

更新:

这里有一些代码来反射(reflect)我正在谈论的内容

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
}

关于java - 在不知道格式的情况下解析 JSON(可以是两个不同对象之一),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47888235/

相关文章:

java - 为什么我没有权限将文件保存到 SD 卡中?

java - 更新非 JSF 表单

java - 触摸事件行为异常

xml - 是否有在线 JSON 到 XML 转换器?

javascript - 我应该如何循环/解析具有大量嵌套数组的 json 对象中的特定值?

java - 签名和加密策略

java - 在 Scala 中,是否有一种安全、快捷的方式将 InputStream 写入文件?

Android - 到 .NET WCF 服务的 Https 连接给出 SSLException : "No peer certificate"

javascript - ajax函数后访问对象

json - 编辑项目并使用 jq 打印全部内容