如何获取未知json对象结构的Json键值

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

我有一个 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^ ^员工.公司.type2 “生成的密钥”=company.employee.software.employeetype+employee.company.type1+employee.company.type2

最终答案: “生成的密钥”:“永久401541”

JSON 路径 2:trust.people.contract.type^trust.people.type4^trust.people.contract.type4 “生成密钥”=trust.people.contract.type+trust.people.type4+trust.people.contract.type4

最终答案: “生成的密钥”:“可用454158771”

我尝试根据路径进行迭代

java json
2个回答
2
投票

有一个叫做 JSON Path 的库https://www.npmjs.com/package/jsonpath,在这里你可以为路径编写正则表达式来获取值

要进行测试,请使用名为

json path evaluator
的在线工具 https://jsonpath.com/ 来验证您的路径


0
投票

https://github.com/json-path/JsonPath

如果您需要帮助,请在 Stack Overflow 上提问。标记问题“jsonpath”和“java”。

JsonPath 表达式始终引用 JSON 结构,就像 XPath 表达式与 XML 文档结合使用一样。 JsonPath 中的“根成员对象”始终被称为 $,无论它是对象还是数组。

JsonPath 表达式可以使用点符号

$.store.book[0].title

或括号符号

$['商店']['书'][0]['书名']

© www.soinside.com 2019 - 2024. All rights reserved.