spring 使用jsonPath仅访问json的键名

scyqe7ek  于 2022-10-30  发布在  Spring
关注(0)|答案(2)|浏览(199)

我有一个简单的问题,假设我有以下json

{
   "ALPHA":[
      ....
   ],
   "BETA":[
     ....
   ],
   "GAMMA":[
     .....
   ]
}

我如何访问subroot元素,我指的是名称:"ALPHA","BETA","GAMMA"使用jsonPath?请注意,我指的是它们的名称而不是数组!!!
我试过jsonPath("$[*]", ...),但它不起作用,有什么建议吗?

fzwojiic

fzwojiic1#

您可以考虑另一个库 Josson。只需一个函数keys()就可以完成这项工作。
https://github.com/octomix/josson

Josson josson = Josson.fromJsonString(
    "{" +
    "   \"ALPHA\":[" +
    "      1,2,3,4" +
    "   ]," +
    "   \"BETA\":[" +
    "     5,6,7" +
    "   ]," +
    "   \"GAMMA\":[" +
    "     8,9" +
    "   ]" +
    "}");
JsonNode node = josson.getNode("keys()");
System.out.println(node.toPrettyString());

输出量

[ "ALPHA", "BETA", "GAMMA" ]
lf5gs5x2

lf5gs5x22#

谢谢你@Raymond Choi,它应该也能工作。
但是根据你的回答,我应该使用函数keys(),我搜索了一点,我发现jsonPath确实有自己的函数。
所以我的问题的解决方法很简单:
jsonPath("$.keys())

相关问题