我正在尝试自学如何使用JSON但我在使用Java构建JSON对象时遇到了问题。我正在导入javax.json并试图创建这样的东西:
JsonObject model = Json.createObjectBuilder()
.add("firstName", "Duke")
.add("lastName", "Java")
.add("age", 18)
.build();
我收到此错误:
Exception in thread "main" java.lang.AbstractMethodError: javax.json.spi.JsonProvider.createObjectBuilder()Ljavax/json/JsonObjectBuilder;
at javax.json.Json.createObjectBuilder(Json.java:266)
at com.example.jsontest.Test.main(Test.java:15)
有什么想法吗?
答案 0 :(得分:2)
您尝试在没有JSON提供程序的情况下使用新的javax.json
API。据我所知(以及一些谷歌搜索),目前唯一的一个是reference implementation from glassfish。
在你的pom.xml中,你需要两个依赖项:
<dependency>
<groupId>javax.json</groupId>
<artifactId>javax.json-api</artifactId>
<version>1.0</version>
</dependency>
<dependency>
<groupId>org.glassfish</groupId>
<artifactId>javax.json</artifactId>
<version>1.0.4</version>
</dependency>
答案 1 :(得分:1)
首先学习纯JSON,而不是尝试使用“模型”或将Java对象转换为JSON或其他任何东西。创建相应的地图和列表,并使用json-simple之类的内容将地图/列表“序列化”为JSON字符串。
一旦你理解了JSON到底有多简单,就会更容易理解和使用许多Java人员坚持用来处理JSON的复杂kluges。