【问题标题】:which jar libraries should i use when using json使用 json 时应该使用哪些 jar 库
【发布时间】:2016-01-03 17:01:59
【问题描述】:

我对 json 很陌生,我正在尝试用 java 运行 json。我从互联网上找到了 2 个名为

的 json jar 文件
1)java-json.jar 
2)json-lib-2.4-jdk15.jar 

如果我要使用 json 运行 java 代码,我需要包含这 2 个 jar 库还是一个就足够了。 我包含了两个库并尝试运行代码,我看到了这个异常

NoClassDefFoundError: org/apache/commons/lang/exception/NestableRuntimeException

我意识到这是因为缺少 lib 或某些东西我不知道运行 java 代码时应该包含的 jar 文件(如果它使用 json) 有人能告诉我我应该使用的每个 jar 文件吗?我的代码如下所示

public static void main(String[] args) {

        json = new JSONObject();
        map = new HashMap<String, String>();

        map.put("name", "priyamal");
        map.put("age", "21");

        json.accumulateAll(obj.map);

        printJsonStrin(json.toString());

    }


    public static void printJsonStrin(String jsonstr){
        System.out.println(jsonstr);
    }

【问题讨论】:

  • NoClassDefFoundError中缺失的类位于commons-lang.jar中。
  • 我可以从两者创建 jsonobject 的 2 个 jar 文件有什么区别
  • 两者之间没有区别,但可能其中一个或两个都依赖于 commons-lang.jar,所以你也需要那个。

标签: java json xml gson


【解决方案1】:

根据Maven Repository,两个最流行且功能齐全的 Java JSON 库是:

两者的 jar 都可以通过 Maven 访问:

  • Gson 需要 gson-2.4.jar(组 ID com.google.code.gson,工件 ID gson
  • Jackson 需要 jackson-databind-2.6.2.jar(组 ID com.fasterxml.jackson.core,工件 jackson-databind),以及 2 个支持 jar(jackson-core 用于流解析器,jackson-annotations 用于注释支持)

您列出的罐子是用于其他不太常用的软件包(json-libhttp://json-lib.sourceforge.net/ 的一个已经很老了;其他的我什至不知道它是什么),所以我不建议您使用它们。

【讨论】:

  • 谢谢...我认为只有在我们想要创建对象并将 json 字符串反序列化为对象时才应该使用 gson
  • GSON 和 Jackson 允许使用多种样式,包括使用“树”样式(节点)和“无类型”(地图、列表)进行读取、写入。因此,虽然大多数教程只展示了 POJO 的使用(老实说,这通常是最方便的方式),但这并不是使用它们的唯一方式。在您的情况下,您可以创建您的Map,并将其写到OutputStreamWriter;或者,如果出于某种原因需要它作为字符串,这也很容易(对于杰克逊,ObjectMapper.writeValueAsString(map);
【解决方案2】:

NoClassDefFoundError 中缺失的类位于 apache 的 commons-lang.jar 中。

可以在here下载。

【讨论】:

    【解决方案3】:

    作为 Java8 工作:


    这是JAR的链接

    如需更多帮助,请访问https://javaee.github.io/jsonp/

    下载它并直接添加到您的项目中。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-08-07
      • 1970-01-01
      • 2010-11-27
      • 1970-01-01
      • 2023-04-02
      • 2010-11-26
      • 2021-11-20
      • 2021-02-22
      相关资源
      最近更新 更多