使用javax createObjectBuilder创建JSON文件时出现问题

时间:2014-01-21 20:17:25

标签: java json

我正在尝试自学如何使用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)

有什么想法吗?

2 个答案:

答案 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。