gpt4 book ai didi

java - 在 javax.json.spi.JsonProvider.provider(JsonProvider.java :97)) 找不到提供者 org.glassfish.json.JsonProviderImpl

转载 作者:搜寻专家 更新时间:2023-10-30 21:39:26 33 4
gpt4 key购买 nike

如何在 Eclipse 中运行用于 JSON 处理的 Java API(JSR 374)?

我正在尝试将 JSON 字符串解析为 JsonParser(javax.json.stream.JsonParser ).还在构建路径中添加了 javax.json-api-1.0.jar。在运行时,有一个异常。我的代码是

import java.io.StringReader;
import javax.json.Json;
import javax.json.JsonReader;
import javax.json.JsonStructure;
import javax.json.stream.JsonParser;
import javax.json.stream.JsonParser.Event;
import javax.json.JsonReader;
import javax.json.JsonStructure;
import javax.json.stream.JsonParser;
import javax.json.stream.JsonParser.Event;
public class jsonnn {
public class jsonnn {
public static void main(String[] args) {
// Parse back
final String result = "{\"name\":\"Falco\",\"age\":3,\"bitable\":false}";
final JsonParser parser = Json.createParser(new StringReader(result));
String key = null;
String value = null;
while (parser.hasNext()) {
final Event event = parser.next();
switch (event) {
case KEY_NAME:
key = parser.getString();
System.out.println(key);
break;
case VALUE_STRING:
value = parser.getString();
System.out.println(value);
break;
}
}
parser.close();
}
}

异常(exception)的是

Exception in thread "main" javax.json.JsonException: Provider org.glassfish.json.JsonProviderImpl not found
at javax.json.spi.JsonProvider.provider(JsonProvider.java:97)
at javax.json.Json.createParser(Json.java:90)
at jsonnn.main(jsonnn.java:14)
Caused by: java.lang.ClassNotFoundException: org.glassfish.json.JsonProviderImpl
at java.net.URLClassLoader.findClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
at java.lang.Class.forName0(Native Method)
at java.lang.Class.forName(Unknown Source)
at javax.json.spi.JsonProvider.provider(JsonProvider.java:94)
... 2 more

最佳答案

您正在针对 API 进行开发,但没有针对该 API 的实现。您需要确保实现了 JSON-P 规范才能实际运行您尝试使用的代码。

JSR 374 official website Getting Started guide ,它表明您需要两个 Maven 依赖项 - 一个用于 API,一个用于引用实现 - 在您可以使用 JSON-P 1.1 之前:

<dependency>
<groupId>javax.json</groupId>
<artifactId>javax.json-api</artifactId>
<version>1.1</version>
</dependency>

<dependency>
<groupId>org.glassfish</groupId>
<artifactId>javax.json</artifactId>
<version>1.1</version>
</dependency>

由于您似乎没有使用 Maven,因此您需要手动从 Maven Central 下载实现 JAR: https://repo1.maven.org/maven2/org/glassfish/javax.json/1.1/

或者只需单击此直接链接下载 JAR:javax.json-1.1.jar

关于java - 在 javax.json.spi.JsonProvider.provider(JsonProvider.java :97)) 找不到提供者 org.glassfish.json.JsonProviderImpl,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47022653/

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