1
0
Fork 0
mirror of https://github.com/ethauvin/JSON-java.git synced 2025-06-17 07:50:52 -07:00

Merge pull request #153 from treyerl/master

JSONObject and JSONArray initialization for Map<?,?> and Collection<?>
This commit is contained in:
Sean Leary 2015-10-29 18:07:43 -05:00
commit 564ad2c2fb
2 changed files with 21 additions and 31 deletions

View file

@ -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

@ -243,15 +243,13 @@ public class JSONObject {
* the JSONObject. * the JSONObject.
* @throws JSONException * @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 +1202,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 +1266,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 +1661,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 +1703,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 +1749,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) {