Eclipse:我无法导入javax.json(或javax.json.stream)

时间:2017-11-16 01:35:35

标签: java maven gson json-api

尝试使用GSON和JSON-api。将GSON导入我的代码没有问题。

导入JSON-api时出错("在Eclipse编译器中找不到符号"消息)。

最终结果是我想使用" JsonParser"根据Oracle页面(单击here获取链接)在javax.json中。

这是我的java代码的片段:

package com.myorg.core.impl.view.tools;

import com.google.gson.Gson; //no error

import javax.jcr.Node;
import javax.jcr.RepositoryException;
import javax.jcr.Session;
import javax.json; // error
//also tried import javax.json.stream same results. 

我的pom.xml中有以下几行

    <dependency>
        <groupId>com.google.code.gson</groupId>
        <artifactId>gson</artifactId>
    </dependency>
    <dependency>
        <groupId>javax.json</groupId>
        <artifactId>javax.json-api</artifactId>
        <version>1.1.2</version>
    </dependency>
    <!-- I also tried version 1.0. same result -->

在两个依赖项中,我都可以在Eclipse .m2存储库中看到jar文件

myuser@myusers-MacBook-Pro : repository
=> find ~/.m2 -iname "*gson*" -type f
/Users/myuser/.m2/repository/com/google/code/gson/gson/2.7/gson-2.7.jar
/Users/myuser/.m2/repository/com/google/code/gson/gson/2.7/gson-2.7.jar.lastUpdated
/Users/myuser/.m2/repository/com/google/code/gson/gson/2.7/gson-2.7.jar.sha1
/Users/myuser/.m2/repository/com/google/code/gson/gson/2.7/gson-2.7.pom
/Users/myuser/.m2/repository/com/google/code/gson/gson/2.7/gson-2.7.pom.lastUpdated
/Users/myuser/.m2/repository/com/google/code/gson/gson/2.7/gson-2.7.pom.sha1
/Users/myuser/.m2/repository/com/google/code/gson/gson-parent/2.7/gson-parent-2.7.pom
/Users/myuser/.m2/repository/com/google/code/gson/gson-parent/2.7/gson-parent-2.7.pom.lastUpdated
/Users/myuser/.m2/repository/com/google/code/gson/gson-parent/2.7/gson-parent-2.7.pom.sha1
11:54:03 Thu Nov 16
myuser@myusers-MacBook-Pro : repository
=> find ~/.m2 -iname "*json-api*" -type f
/Users/myuser/.m2/repository/javax/json/javax.json-api/1.1.2/javax.json-api-1.1.2.jar
/Users/myuser/.m2/repository/javax/json/javax.json-api/1.1.2/javax.json-api-1.1.2.jar.lastUpdated
/Users/myuser/.m2/repository/javax/json/javax.json-api/1.1.2/javax.json-api-1.1.2.jar.sha1
/Users/myuser/.m2/repository/javax/json/javax.json-api/1.1.2/javax.json-api-1.1.2.pom
/Users/myuser/.m2/repository/javax/json/javax.json-api/1.1.2/javax.json-api-1.1.2.pom.lastUpdated
/Users/myuser/.m2/repository/javax/json/javax.json-api/1.1.2/javax.json-api-1.1.2.pom.sha1

1 个答案:

答案 0 :(得分:0)

首先关于你的导入

import javax.json; // error, sure it will be an error

上面应该告诉你类似的东西

  

只能导入一种类型。 javax.json解析为包

使用通配符导入类型或类型

import javax.json.*;
import javax.json.stream.*;

或只是JsonParser

import javax.json.stream.JsonParser;
  

最终结果是我想使用&#34; JsonParser&#34;

你的pom中有javax.json-api依赖。

只有API只有

package javax.json.stream;

interface JsonParser { ...

另一方面,GSON没有实现,但有自己的

package com.google.gson;

public final class JsonParser // not implementing above mentioned

我不是所有JSON库的专家,但是很快就找不到任何JsonParser实现在该包中严格实现该接口。

也许你只管理com.google.gson.JsonParser