gpt4 book ai didi

java - 如何在 Java 中使用 JsonPath 从 JSON 获取值?

转载 作者:搜寻专家 更新时间:2023-11-01 02:37:35 25 4
gpt4 key购买 nike

我想使用 JsonPath 从 JSON 对象中获取值。任何人都可以向我推荐我需要的合适的 jar,因为据我所知,我正在为 jsonpath 使用的 jar 得到这个异常。

package jsonPg;

import java.io.IOException;

import org.json.JSONException;
import org.json.JSONObject;

import com.jayway.jsonpath.JsonPath;

public class ReadJsonPath {

static String file = "D:\\AutomationSample\\Sample_Json.txt";

public static void main(String[] args) throws JSONException, IOException {
JsonReadFile jsonReadFile=new JsonReadFile();
JSONObject jsonObj=jsonReadFile.parseJSONFile(file);
String jsonObject=jsonObj.toString();
String json="";
System.out.println(jsonObject);
// Object val = JsonPath.read(jsonObject,"");
String val1=JsonPath.read(jsonObject," $.payload[*].supplierDataMap[*].COMPANYDETAILS.customFieldList[*].DISPLAYGSID .value");
System.out.println(val1);

}

}

这是我写的代码,下面是运行时抛出的异常

    Exception in thread "main" java.lang.NoSuchFieldError: FACTORY_SIMPLE
at com.jayway.jsonpath.spi.impl.JsonSmartJsonProvider.<init>(JsonSmartJsonProvider.java:38)
at com.jayway.jsonpath.spi.impl.JsonSmartJsonProvider.<init>(JsonSmartJsonProvider.java:41)
at com.jayway.jsonpath.spi.JsonProviderFactory.<clinit> (JsonProviderFactory.java:24)
at com.jayway.jsonpath.Configuration.defaultConfiguration(Configuration.java:62)
at com.jayway.jsonpath.internal.JsonReader.<init>(JsonReader.java:26)
at com.jayway.jsonpath.JsonPath.read(JsonPath.java:462)
at jsonPg.ReadJsonPath.main(ReadJsonPath.java:27)`

如有任何帮助,我们将不胜感激。提前致谢。

最佳答案

您可以单独使用 JsonPath 库来实现您的目标。这是一个例子:

    String jsonString = "{ \"list\": [ { \"name\": \"foo1\"}, { \"name\": \"foo2\"} ]}";
DocumentContext docCtx = JsonPath.parse(jsonString);
JsonPath jsonPath = JsonPath.compile("$.list[?(@.name == \"foo1\")]");
JSONArray val1=docCtx.read(jsonPath);
System.out.println(val1);

这段代码会打印出来:

[{"name":"foo1"}]

必需的 maven 依赖:

<dependency>
<groupId>com.jayway.jsonpath</groupId>
<artifactId>json-path</artifactId>
<version>2.2.0</version>
</dependency>

json-path 也会自动拉取 json-smart JAR:

<dependency>
<groupId>net.minidev</groupId>
<artifactId>json-smart</artifactId>
<version>2.2.1</version>
</dependency>

关于java - 如何在 Java 中使用 JsonPath 从 JSON 获取值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43798853/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com