2012-05-01 6 views
8

Me preguntaba por qué www.json.org/anyone else no proporciona un paquete JAR oficial de org.json para descargar. Todas las consultas que encuentro son de personas que preguntan dónde pueden descargar los resultados de JAR en las respuestas a la página que solo enumera los archivos de origen.org.json Aprovisionamiento de JAR

Parece un poco engorroso esperar que todos descarguen cada archivo fuente y preparen el archivo JAR.

Respuesta

14

¿Ha considerado usar Maven? por ejemplo, si desea una jarra para pars JSON que podría incluir sólo ...

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> 

en un pom.xml, esto le dará el tarro de JSON.

O mejor aún, utilizar el org.json uno ...

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

<dependency> 
    <groupId>org.json</groupId> 
    <artifactId>json</artifactId> 
    <version>20090211</version> 
</dependency> 
+4

Sólo una advertencia rápida ... la versión de org.json que está disponible en el repositorio Maven es mucho más antigua que la versión actual en GitHub https: // github.com/douglascrockford/JSON-java. Tuve algunos problemas con la versión de Maven que, supongo, fueron errores que se solucionaron porque utilizar la versión más reciente resolvió directamente los problemas. –

+0

La mala solución aquí es ir a la implementación Java de JSON de Crockford, bifurcarla y crear una jarra de ella. Hice esto, y también es un proyecto de maven, así que puedes instalarlo en tu repositorio, o simplemente crear un jar con eso. https://github.com/anatolyg/JSON-java –

+0

La versión 20131018 también está en el repositorio de mvn para aquellos que se preguntan. – Johncl

1

La aplicación de json.org por Douglas Crockford no está libre. Por suerte, existe un reemplazo gratuito casi drop-in (al parecer, el código de Google empaquetado por otra persona para Maven Central):

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

añadir esto a pom.xml lugar de utilizar el json.org uno. Tuvimos que hacer solo un pequeño cambio en nuestro código para esto: el vaadin puede lanzar JSONException en más lugares, así que tuvimos que atraparlos o pasarlos a las personas que llaman (extender la declaración de tiradas).

+1

También he empacado esto en Maven e hizo una serie de cambios para facilitar el acceso al puerto. Notablemente, JSONException ahora está desmarcada. Ver https://github.com/tdunning/open-json (también disponible vía maven) –

0

Tenga en cuenta que el software json.org tiene una licencia de fuente no abierta. Esto causa problemas aguas abajo en muchos casos.

El problema es que la licencia es esencialmente la licencia de MIT, pero agrega una línea que dice que el software solo debe usarse para bien, no para mal. Esto suena bien, pero si tiene que conseguir un abogado corporativo para cerrar la sesión se vuelve desagradable porque no hay una definición legal de consenso del "mal". Si usa la biblioteca de json.org, no puede poner su software en Debian, por ejemplo. Su software tampoco puede ser una dependencia para ningún proyecto Apache.

Para ayudar con esto, he adaptado y empaquetado la reescritura de la sala blanca de Android de la biblioteca json.org. La fuente está en github y tiene licencia de Apache. Ver https://github.com/tdunning/open-json. Para utilizar esta, añadir algo como esto a su pom (o equivalente):

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

Ping mí con peticiones para jalar o problemas en GitHub o como usted quiera.

0

El uso del paquete com.tdunnning puede provocar conflictos de dependencia, especialmente si hace que su proyecto esté disponible para otros como una biblioteca. La implementación no tiene compatibilidad 100% con org.json

Ese paquete (com.tdunning) se ha bifurcado a https://github.com/openjson/openjson con el paquete renombrado como com.github.openjson en lugar de org.json para evitar conflictos.

La dependencia Maven:

<dependency> 
    <groupId>com.github.openjson</groupId> 
    <artifactId>openjson</artifactId> 
    <version>1.0.10</version> 
</dependency> 
Cuestiones relacionadas