java - 如何在不知道格式的情况下映射 json 对象的值?

标签 java json spring

我有以下编程要求:

问题: 给定两个 JSON A 和 B,如果 JSON A 中的字段 x、y、z 与 B 中的字段 i、o、p 匹配,则返回 true,否则返回 false。

方法: 我不想构建依赖于 json 格式的匹配引擎。我不想使用 pojos 格式化 json,然后进行对象匹配。我的方法是将所有的json转换为 HashMap ,然后使用字符串指定字段的位置:

示例: 钱 -> a,b,c

{
  a :
   {
      b : {
         c: {
           money : "100"
         }
       }
    }
}

但是这种方法似乎有点棘手,因为我们必须考虑集合。我必须涵盖所有边缘情况。有没有任何 spring 库或 java 工具可以用来实现这个目的?

最佳答案

有许多库可用于此目的。
最流行的一个是 com.google.gson
用法:

JsonObject jo = (JsonObject)(jsonParser.parse("{somejsonstring}");<br>
jo.has("objectProperty") //Check if property exists
jo.get("objectProperty") // returns JsonElement, 
jo.get("objectProperty").isJsonArray() // check if the property is the type that want
jo.getAsJsonArray("objectProperty") get the property

关于java - 如何在不知道格式的情况下映射 json 对象的值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61180335/

相关文章:

java - 有没有好的Java跨平台SIP/VOIP开发包?

java - 如何使用 Java 和 Spark SQL 打印数据集中的行内容?

c# - 如何将字符串解析为忽略时区的 JObject

javascript - 在javascript中读取json文件

java - 访问被拒绝 ("java.io.FilePermission" "execute")

java - 如何以编程方式更改 S3 上的文件名以删除文件扩展名?

angularjs - Angular使用ajax获取JSON数据

javascript - 使用 Spring Controller 的缓慢 GET 请求

java - 如何获取默认的 apache camel 上下文 id 或创建新的

java - 如何在公共(public)pom中保留版本号并在其他pom文件中使用它(spring maven项目)