9

我想知道为什么 www.json.org/anyone else 不提供 org.json 的官方 JAR 包供下载?我发现人们询问他们可以在哪里下载 JAR 的所有查询都会导致对仅列出源文件的页面的回复。

期望每个人都下载每个源文件并自己准备 JAR 文件似乎有点麻烦。

4

5 回答 5

19

您是否考虑过使用 Maven?例如,如果你想要一个 JAR 来解析 JSON,你可以只包括......

http://mvnrepository.com/artifact/org.codehaus.jackson/jackson-core-asl/1.9.6

<dependency>
    <groupId>org.codehaus.jackson</groupId>
    <artifactId>jackson-core-asl</artifactId>
    <version>1.9.6</version>
</dependency>

在 pom.xml 中,这将为您提供 JSON 的 jar。

或者更好的是,使用 org.json ......

http://mvnrepository.com/artifact/org.json/json

<dependency>
    <groupId>org.json</groupId>
    <artifactId>json</artifactId>
    <version>20090211</version>
</dependency>
于 2012-05-01T10:07:32.320 回答
1

我从这里下载了一个 jar: http ://code.google.com/p/org-json-java/downloads/detail?name=org.json-20120521.jar&can=2&q=

于 2013-10-18T22:59:00.193 回答
1

Douglas Crockford 的 json.org 实现是非免费的。幸运的是,存在一个几乎免费的替代品(显然,谷歌的代码由其他人为 Maven Central 打包):

<dependency>
    <groupId>com.vaadin.external.google</groupId>
    <artifactId>android-json</artifactId>
    <version>0.0.20131108.vaadin1</version>
</dependency>

将此添加到pom.xml而不是使用 json.org 之一。为此,我们只需要对我们的代码做一点小改动:vaadin 可以JSONException在更多地方抛出,所以我们必须要么捕获它们,要么将它们传递给调用者(扩展 throws 声明)。

于 2015-12-22T14:44:53.613 回答
1

请注意 json.org 软件具有非开源许可证。这在许多情况下会导致下游问题。

问题是许可证本质上是 MIT 许可证,但它增加了一行,说明该软件只能用于善,而不是作恶。这听起来不错,但如果你必须让公司律师签字,那就很糟糕了,因为“邪恶”没有一致的法律定义。例如,如果您使用 json.org 的库,则不能将您的软件放入 Debian。您的软件同样不能成为任何 Apache 项目的依赖项。

为了解决这个问题,我改编并打包了 json.org 库的 android clean-room rewrite。源代码在 github 上,并且是 Apache 许可的。请参阅https://github.com/tdunning/open-json。要使用它,请在您的 pom(或等效项)中添加类似这样的内容:

<!-- https://mvnrepository.com/artifact/com.tdunning/json -->
<dependency>
    <groupId>com.tdunning</groupId>
    <artifactId>json</artifactId>
    <version>1.3</version>
</dependency>

用 github 上的拉取请求或问题或你喜欢的任何方式向我发送请求。

于 2016-12-04T04:09:26.210 回答
0

使用 com.tdunnning 包可能会导致依赖冲突,尤其是当您将项目作为库提供给其他人时。该实现与 org.json 没有 100% 的兼容性

该包(com.tdunning)已被分叉到https://github.com/openjson/openjson,包重命名为 com.github.openjson 而不是 org.json 以防止冲突。

maven依赖:

<dependency>
    <groupId>com.github.openjson</groupId>
    <artifactId>openjson</artifactId>
    <version>1.0.10</version>
</dependency>
于 2017-10-27T13:53:40.340 回答