Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 2 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
org/*
JSON-java.jar
95 changes: 0 additions & 95 deletions README

This file was deleted.

112 changes: 112 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,112 @@
# JSON in Java [package org.json]

JSON is a light-weight, language independent, data interchange format.
See [http://www.JSON.org/](http://www.JSON.org/)

The files in this package implement JSON encoders/decoders in Java.
It also includes the capability to convert between JSON and XML, HTTP
headers, Cookies, and CDL.

This is a reference implementation. There is a large number of JSON packages
in Java. Perhaps someday the Java community will standardize on one. Until
then, choose carefully.

The license includes this restriction: *"The software shall be used for good,
not evil."* If your conscience cannot live with that, then choose a different
package.

The package compiles on Java 1.6-1.8.

## Classes

- **JSONObject.java**: The JSONObject can parse text from a String or a JSONTokener
to produce a map-like object. The object provides methods for manipulating its
contents, and for producing a JSON compliant object serialization.

- **JSONArray.java**: The JSONObject can parse text from a String or a JSONTokener
to produce a vector-like object. The object provides methods for manipulating
its contents, and for producing a JSON compliant array serialization.

- **JSONTokener.java**: The JSONTokener breaks a text into a sequence of individual
tokens. It can be constructed from a String, Reader, or InputStream.

- **JSONException.java**: The JSONException is the standard exception type thrown
by this package.

- **JSONPointer.java**: Implementation of
[JSON Pointer (RFC 6901)](https://tools.ietf.org/html/rfc6901). Supports
JSON Pointers both in the form of string representation and URI fragment
representation.

- **JSONString.java**: The JSONString interface requires a toJSONString method,
allowing an object to provide its own serialization.

- **JSONStringer.java**: The JSONStringer provides a convenient facility for
building JSON strings.

- **JSONWriter.java**: The JSONWriter provides a convenient facility for building
JSON text through a writer.

- **CDL.java**: CDL provides support for converting between JSON and comma
delimited lists.

- **Cookie.java**: Cookie provides support for converting between JSON and cookies.

- **CookieList.java**: CookieList provides support for converting between JSON and
cookie lists.

- **HTTP.java**: HTTP provides support for converting between JSON and HTTP headers.

- **HTTPTokener.java**: HTTPTokener extends JSONTokener for parsing HTTP headers.

- **XML.java**: XML provides support for converting between JSON and XML.

- **JSONML.java**: JSONML provides support for converting between JSONML and XML.

- **XMLTokener.java**: XMLTokener extends JSONTokener for parsing XML text.

## Unit tests

Unit tests are maintained in a separate project. Contributing developers can test
JSON-java pull requests with the code in [this project](https://github.com/stleary/JSON-Java-unit-test).

## Data types

Numeric types in this package comply with ECMA-404: The [JSON Data Interchange Format](http://www.ecma-international.org/publications/files/ECMA-ST/ECMA-404.pdf) and
[RFC 7159: The JavaScript Object Notation (JSON) Data Interchange Format](https://tools.ietf.org/html/rfc7159#section-6).
This package fully supports Integer, Long, and Double Java types. Partial support
for BigInteger and BigDecimal values in JSONObject and JSONArray objects is provided
in the form of get(), opt(), and put() API methods.

## Compatibility

Although 1.6 compatibility is currently supported, it is not a project goal and may be
removed in some future release.

## Release history

- 20160212 Java 1.6 compatibility, OSGi bundle. Contains the latest code as of 12 Feb, 2016.

- 20151123 JSONObject and JSONArray initialization with generics. Contains the
latest code as of 23 Nov, 2015.

- 20150729 Checkpoint for Maven central repository release. Contains the latest code
as of 29 July, 2015.

## Releases

### Maven

JSON-java releases can be found by searching the Maven repository for groupId "org.json"
and artifactId "json". For example:
https://search.maven.org/#search%7Cgav%7C1%7Cg%3A%22org.json%22%20AND%20a%3A%22json%22

### Jar

Jar package can be made using the Apache Ant tool:

```
$ ant
```

This will create `JSON-java.jar` file on the current directory with all the compiled classes.
17 changes: 17 additions & 0 deletions build.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
<?xml version="1.0"?>
<project name="JSON-java" default="dist" basedir=".">
<property name="jar" value="JSON-java.jar"/>

<target name="build">
<javac srcdir="." destdir="." includes="*.java" deprecation="yes" includeantruntime="false">
<compilerarg value="-Xlint:unchecked"/>
</javac>
</target>

<target name="dist" depends="build">
<jar destfile="${jar}">
<fileset dir="." includes="**/*.class"/>
</jar>
</target>
</project>