mirror of https://github.com/sismics/docs.git
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;
|
|
}
|
|
}
|