我想知道为什么 www.json.org/anyone else 不提供 org.json 的官方 JAR 包供下载?我发现人们询问他们可以在哪里下载 JAR 的所有查询都会导致对仅列出源文件的页面的回复。
期望每个人都下载每个源文件并自己准备 JAR 文件似乎有点麻烦。
您是否考虑过使用 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>
我从这里下载了一个 jar: http ://code.google.com/p/org-json-java/downloads/detail?name=org.json-20120521.jar&can=2&q=
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 声明)。
请注意 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 上的拉取请求或问题或你喜欢的任何方式向我发送请求。
使用 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>