1
0
Fork 0
mirror of https://github.com/ethauvin/JSON-java.git synced 2025-06-17 07:50:52 -07:00
This commit is contained in:
John J. Aylward 2015-12-08 09:27:54 -05:00
commit ec8f649467
3 changed files with 33 additions and 38 deletions

View file

@ -76,7 +76,7 @@ import java.util.Map;
* </ul> * </ul>
* *
* @author JSON.org * @author JSON.org
* @version 2015-07-22 * @version 2015-10-29
*/ */
public class JSONArray implements Iterable<Object> { public class JSONArray implements Iterable<Object> {
@ -151,13 +151,12 @@ public class JSONArray implements Iterable<Object> {
* @param collection * @param collection
* A Collection. * A Collection.
*/ */
public JSONArray(Collection<Object> collection) { public JSONArray(Collection<?> collection) {
this.myArrayList = new ArrayList<Object>(); this.myArrayList = new ArrayList<Object>();
if (collection != null) { if (collection != null) {
Iterator<Object> iter = collection.iterator(); for (Object o: collection){
while (iter.hasNext()) { this.myArrayList.add(JSONObject.wrap(o));
this.myArrayList.add(JSONObject.wrap(iter.next())); }
}
} }
} }
@ -746,7 +745,7 @@ public class JSONArray implements Iterable<Object> {
* A Collection value. * A Collection value.
* @return this. * @return this.
*/ */
public JSONArray put(Collection<Object> value) { public JSONArray put(Collection<?> value) {
this.put(new JSONArray(value)); this.put(new JSONArray(value));
return this; return this;
} }
@ -799,7 +798,7 @@ public class JSONArray implements Iterable<Object> {
* A Map value. * A Map value.
* @return this. * @return this.
*/ */
public JSONArray put(Map<String, Object> value) { public JSONArray put(Map<?, ?> value) {
this.put(new JSONObject(value)); this.put(new JSONObject(value));
return this; return this;
} }
@ -848,7 +847,7 @@ public class JSONArray implements Iterable<Object> {
* @throws JSONException * @throws JSONException
* If the index is negative or if the value is not finite. * If the index is negative or if the value is not finite.
*/ */
public JSONArray put(int index, Collection<Object> value) throws JSONException { public JSONArray put(int index, Collection<?> value) throws JSONException {
this.put(index, new JSONArray(value)); this.put(index, new JSONArray(value));
return this; return this;
} }
@ -920,7 +919,7 @@ public class JSONArray implements Iterable<Object> {
* If the index is negative or if the the value is an invalid * If the index is negative or if the the value is an invalid
* number. * number.
*/ */
public JSONArray put(int index, Map<String, Object> value) throws JSONException { public JSONArray put(int index, Map<?, ?> value) throws JSONException {
this.put(index, new JSONObject(value)); this.put(index, new JSONObject(value));
return this; return this;
} }

View file

@ -92,7 +92,7 @@ import java.util.Set;
* </ul> * </ul>
* *
* @author JSON.org * @author JSON.org
* @version 2015-07-22 * @version 2015-12-05
*/ */
public class JSONObject { public class JSONObject {
/** /**
@ -165,10 +165,6 @@ public class JSONObject {
* A JSONObject. * A JSONObject.
* @param names * @param names
* An array of strings. * An array of strings.
* @throws JSONException
* @exception JSONException
* If a value is a non-finite number or if a name is
* duplicated.
*/ */
public JSONObject(JSONObject jo, String[] names) { public JSONObject(JSONObject jo, String[] names) {
this(); this();
@ -241,17 +237,14 @@ public class JSONObject {
* @param map * @param map
* A map object that can be used to initialize the contents of * A map object that can be used to initialize the contents of
* the JSONObject. * the JSONObject.
* @throws JSONException
*/ */
public JSONObject(Map<String, Object> map) { public JSONObject(Map<?, ?> map) {
this.map = new HashMap<String, Object>(); this.map = new HashMap<String, Object>();
if (map != null) { if (map != null) {
Iterator<Entry<String, Object>> i = map.entrySet().iterator(); for (final Entry<?, ?> e : map.entrySet()) {
while (i.hasNext()) { final Object value = e.getValue();
Entry<String, Object> entry = i.next();
Object value = entry.getValue();
if (value != null) { if (value != null) {
this.map.put(entry.getKey(), wrap(value)); this.map.put(String.valueOf(e.getKey()), wrap(value));
} }
} }
} }
@ -1204,7 +1197,7 @@ public class JSONObject {
* @return this. * @return this.
* @throws JSONException * @throws JSONException
*/ */
public JSONObject put(String key, Collection<Object> value) throws JSONException { public JSONObject put(String key, Collection<?> value) throws JSONException {
this.put(key, new JSONArray(value)); this.put(key, new JSONArray(value));
return this; return this;
} }
@ -1268,7 +1261,7 @@ public class JSONObject {
* @return this. * @return this.
* @throws JSONException * @throws JSONException
*/ */
public JSONObject put(String key, Map<String, Object> value) throws JSONException { public JSONObject put(String key, Map<?, ?> value) throws JSONException {
this.put(key, new JSONObject(value)); this.put(key, new JSONObject(value));
return this; return this;
} }
@ -1663,13 +1656,11 @@ public class JSONObject {
return value.toString(); return value.toString();
} }
if (value instanceof Map) { if (value instanceof Map) {
@SuppressWarnings("unchecked") Map<?, ?> map = (Map<?, ?>) value;
Map<String, Object> map = (Map<String, Object>) value;
return new JSONObject(map).toString(); return new JSONObject(map).toString();
} }
if (value instanceof Collection) { if (value instanceof Collection) {
@SuppressWarnings("unchecked") Collection<?> coll = (Collection<?>) value;
Collection<Object> coll = (Collection<Object>) value;
return new JSONArray(coll).toString(); return new JSONArray(coll).toString();
} }
if (value.getClass().isArray()) { if (value.getClass().isArray()) {
@ -1707,16 +1698,14 @@ public class JSONObject {
} }
if (object instanceof Collection) { if (object instanceof Collection) {
@SuppressWarnings("unchecked") Collection<?> coll = (Collection<?>) object;
Collection<Object> coll = (Collection<Object>) object;
return new JSONArray(coll); return new JSONArray(coll);
} }
if (object.getClass().isArray()) { if (object.getClass().isArray()) {
return new JSONArray(object); return new JSONArray(object);
} }
if (object instanceof Map) { if (object instanceof Map) {
@SuppressWarnings("unchecked") Map<?, ?> map = (Map<?, ?>) object;
Map<String, Object> map = (Map<String, Object>) object;
return new JSONObject(map); return new JSONObject(map);
} }
Package objectPackage = object.getClass().getPackage(); Package objectPackage = object.getClass().getPackage();
@ -1755,14 +1744,11 @@ public class JSONObject {
} else if (value instanceof JSONArray) { } else if (value instanceof JSONArray) {
((JSONArray) value).write(writer, indentFactor, indent); ((JSONArray) value).write(writer, indentFactor, indent);
} else if (value instanceof Map) { } else if (value instanceof Map) {
@SuppressWarnings("unchecked") Map<?, ?> map = (Map<?, ?>) value;
Map<String, Object> map = (Map<String, Object>) value;
new JSONObject(map).write(writer, indentFactor, indent); new JSONObject(map).write(writer, indentFactor, indent);
} else if (value instanceof Collection) { } else if (value instanceof Collection) {
@SuppressWarnings("unchecked") Collection<?> coll = (Collection<?>) value;
Collection<Object> coll = (Collection<Object>) value; new JSONArray(coll).write(writer, indentFactor, indent);
new JSONArray(coll).write(writer, indentFactor,
indent);
} else if (value.getClass().isArray()) { } else if (value.getClass().isArray()) {
new JSONArray(value).write(writer, indentFactor, indent); new JSONArray(value).write(writer, indentFactor, indent);
} else if (value instanceof Number) { } else if (value instanceof Number) {

10
README
View file

@ -62,3 +62,13 @@ JSONML.java: JSONML provides support for converting between JSONML and XML.
XMLTokener.java: XMLTokener extends JSONTokener for parsing XML text. XMLTokener.java: XMLTokener extends JSONTokener for parsing XML text.
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 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
Release history:
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.
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