有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

JAVA Json自动解析特定值

注:这里是org。json。简单的

在下面的例子中,我总是想要“wewanttthis”值。 例如,我们有Json:

例1

{
    "Header1": {
        "Basex": "ws",
        "Random": {
            "Something": "information"
        },
        "age": 22,
        "Type": "Apa",
        "correlation": "x",
        "weWantThis": "somethingHere"
    }
}

例2

{
    "Header1": {
        "useful": "yes",
        "code": 200,
        "creation": {
            "isValid": "yes",
            "date": 25,
            "items": [
                "pc"
            ],
            "weWantThis": "somethingHere"
        }
    }
}

正如你所见,JSON的格式完全不同,甚至可能更不同。目标是自动检索“weWantThis”的值。i、 e.所有其他标题等。。当然,除了“Wewanttthis”之外,这些都是未知的。如果它不存在,只需返回null。 所以基本上需要进行自动解析,直到找到“wewanttthis”。不知道该怎么做。感谢您的帮助。谢谢!


共 (1) 个答案

  1. # 1 楼答案

    您可以使用JSONPath库。它支持通配符,并支持通过json结构导航来检索任意键的值

    JSONPath

    你甚至可以在这里尝试你的具体例子-

    Try out JSONPath

    输入所需的JSON,然后尝试以下路径-

    $..weWantThis
    

    下面是一个具体的实现-

    import com.jayway.jsonpath.Configuration;
    import com.jayway.jsonpath.JsonPath;
    import com.jayway.jsonpath.Option;
    import com.jayway.jsonpath.PathNotFoundException;
    
    Object document = Configuration.defaultConfiguration().addOptions(Option.SUPPRESS_EXCEPTIONS).jsonProvider()
                .parse(<jsonString>);
    String value = JsonPath.read(document, "$..weWantThis");