mirror of
https://github.com/sismics/docs.git
synced 2024-07-01 14:01:24 +02:00
41 lines
1.2 KiB
Java
41 lines
1.2 KiB
Java
|
package com.sismics.rest.util;
|
||
|
|
||
|
import org.codehaus.jettison.json.JSONArray;
|
||
|
import org.codehaus.jettison.json.JSONException;
|
||
|
import org.codehaus.jettison.json.JSONObject;
|
||
|
|
||
|
/**
|
||
|
* JSON utilities.
|
||
|
*
|
||
|
* @author jtremeaux
|
||
|
*/
|
||
|
public class JsonUtil {
|
||
|
|
||
|
/**
|
||
|
* Fix of {@see JsonObject.append()}, which seems to create nested arrays.
|
||
|
*
|
||
|
* @param o JSON Object
|
||
|
* @param key Key containing the array of null
|
||
|
* @param value Value to append
|
||
|
* @return Updated object
|
||
|
* @throws JSONException
|
||
|
*/
|
||
|
public static JSONObject append(JSONObject o, String key, JSONObject value) throws JSONException {
|
||
|
Object prevValue = o.opt(key);
|
||
|
if (prevValue == null) {
|
||
|
o.put(key, new JSONArray().put(value));
|
||
|
} else if (!(prevValue instanceof JSONArray)){
|
||
|
throw new JSONException("JSONObject[" + key + "] is not a JSONArray.");
|
||
|
} else {
|
||
|
JSONArray newArray = new JSONArray();
|
||
|
JSONArray oldArray = ((JSONArray) prevValue);
|
||
|
for (int i = 0; i < oldArray.length(); i++) {
|
||
|
newArray.put(oldArray.get(i));
|
||
|
}
|
||
|
newArray.put(value);
|
||
|
o.put(key, newArray);
|
||
|
}
|
||
|
return o;
|
||
|
}
|
||
|
}
|