mirror of https://github.com/webbukkit/dynmap.git
73 lines
2.2 KiB
Java
73 lines
2.2 KiB
Java
package org.dynmap;
|
|
|
|
import org.json.simple.JSONArray;
|
|
import org.json.simple.JSONObject;
|
|
|
|
public class JSONUtils {
|
|
|
|
// Gets a value at the specified path.
|
|
public static Object g(JSONObject o, String path) {
|
|
int index = path.indexOf('/');
|
|
if (index == -1) {
|
|
return o.get(path);
|
|
} else {
|
|
String key = path.substring(0, index);
|
|
String subpath = path.substring(index+1);
|
|
Object oo = o.get(key);
|
|
JSONObject subobject;
|
|
if (oo == null) {
|
|
return null;
|
|
} else /*if (oo instanceof JSONObject)*/ {
|
|
subobject = (JSONObject)o;
|
|
}
|
|
return g(subobject, subpath);
|
|
}
|
|
}
|
|
|
|
// Sets a value on the specified path. If JSONObjects inside the path are missing, they'll be created.
|
|
@SuppressWarnings("unchecked")
|
|
public static void s(JSONObject o, String path, Object value) {
|
|
int index = path.indexOf('/');
|
|
if (index == -1) {
|
|
o.put(path, value);
|
|
} else {
|
|
String key = path.substring(0, index);
|
|
String subpath = path.substring(index+1);
|
|
Object oo = o.get(key);
|
|
JSONObject subobject;
|
|
if (oo == null) {
|
|
subobject = new JSONObject();
|
|
o.put(key, subobject);
|
|
} else /*if (oo instanceof JSONObject)*/ {
|
|
subobject = (JSONObject)oo;
|
|
}
|
|
s(subobject, subpath, value);
|
|
}
|
|
}
|
|
|
|
// Adds a value to the list at the specified path. If the list does not exist, it will be created.
|
|
@SuppressWarnings("unchecked")
|
|
public static void a(JSONObject o, String path, Object value) {
|
|
Object oo = g(o, path);
|
|
JSONArray array;
|
|
if (oo == null) {
|
|
array =new JSONArray();
|
|
s(o, path, array);
|
|
} else {
|
|
array = (JSONArray)oo;
|
|
}
|
|
if(value != null)
|
|
array.add(value);
|
|
}
|
|
|
|
// Simply creates a JSONArray.
|
|
@SuppressWarnings("unchecked")
|
|
public static JSONArray l(Object... items) {
|
|
JSONArray arr = new JSONArray();
|
|
for(Object item : items) {
|
|
arr.add(item);
|
|
}
|
|
return arr;
|
|
}
|
|
}
|