java - 如何获取未知json对象结构的Json键值
问题描述
我有一个 JSON 对象数组,但它的结构是未知的。我已经知道如何获取值并根据值生成代码
"memberjson": [{
"company": {
"employee": {
"software": {
"employeetype": "permanent"
},
"type1": "401",
"type2": "541"
}
}
}, {
"trust": {
"people": {
"contract": {
"type": "available"
},
"type4": "4541",
"type5": "58771"
}
}
}]
}
如何获取值但是我可以要求提供路径示例
JSON 路径 1:company.employee.software.employeetype
JSON 路径 2:trust.people.contract.type^trust.people.type4^trust.people.contract.type4
根据我需要获得价值的路径。
我需要以哪种格式存储路径以便我可以轻松获取值,或者请建议我是否有任何其他方式来获取未知结构的值
另外,我需要从上面的 JSON 生成代码:
例如:对于 JSON 路径 1:company.employee.software.employeetype^employee.company.type1^ ^employee.company.type2 "generatedkey"=company.employee.software.employeetype+employee.company.type1+employee.company.type2
最终答案:“generatedkey”:“permanent401541”
JSON路径2:trust.people.contract.type^trust.people.type4^trust.people.contract.type4 "generatedkey"=trust.people.contract.type+trust.people.type4+trust.people.contract.type4
最终答案:“生成密钥”:“available454158771”
我试图根据路径进行迭代
解决方案
有一个名为 JSON Path https://www.npmjs.com/package/jsonpath的库,在这里您可以为路径编写正则表达式以获取值
要测试使用这个名为json path evaluator
https://jsonpath.com/的在线工具来验证您的路径
推荐阅读
- python - tf.keras.models.save_model 和优化器警告
- r - R markdown knitr to html不显示结果或表格
- unity3d - PlayerPrefs 用于动态加载关卡中的得分
- tcl - Tk 中是否有鼠标悬停在小部件内的回调?
- swift - 带有视网膜的 Swift CGContext
- arrays - PostgreSQL - 数组作为函数参数
- vue.js - 链接到页面的特定部分 - Vuejs
- c++ - 带有临时 std::promise 的 std::future
- jdbc - 在 Zeppelin 中保存 AWS Athena 查询的结果
- python - 如何解决TypeError:只能将str(不是“int”)连接到str