X-Git-Url: http://source.jalview.org/gitweb/?a=blobdiff_plain;f=src%2Fjalview%2Futil%2FJSONUtils.java;h=dde1662741f094bb4bb8154c8dc8bb798991688c;hb=6200addf078b7f7ace90597dc056dafc7fc602c1;hp=cdfc88e4a248bf93c384f2803153313797da6097;hpb=e4eca89202963f5f7c95ac002efd64fe0e79a25c;p=jalview.git diff --git a/src/jalview/util/JSONUtils.java b/src/jalview/util/JSONUtils.java index cdfc88e..dde1662 100644 --- a/src/jalview/util/JSONUtils.java +++ b/src/jalview/util/JSONUtils.java @@ -1,6 +1,10 @@ package jalview.util; -import org.json.simple.JSONArray; +import java.io.IOException; +import java.io.Reader; +import java.util.List; + +import org.json.simple.parser.ParseException; public class JSONUtils { @@ -12,23 +16,58 @@ public class JSONUtils * @param jsonArray * @return */ - public static String arrayToList(JSONArray jsonArray) + public static String arrayToStringList(List jsonArray) { - if (jsonArray == null) + int n; + + if (jsonArray == null || (n = jsonArray.size()) == 0) { return null; } - StringBuilder sb = new StringBuilder(); - for (int i = 0; i < jsonArray.size(); i++) + /** + * BH TODO to Platform? + * + * @j2sNative + * + * return jsonArray.elementData.slice(0, n).join(","); + */ { - if (i > 0) + StringBuilder sb = new StringBuilder(); + for (int i = 0; i < n; i++) { - sb.append(","); + if (i > 0) + { + sb.append(","); + } + sb.append(jsonArray.get(i).toString()); } - sb.append(jsonArray.get(i).toString()); + return sb.toString(); } - return sb.length() == 0 ? null : sb.toString(); + } + + /** + * The method all JSON parsing must go through for JavaScript. + * + * @param r + * a BufferedReader or a javascript.json.JSON.JSONReader + * @return + * @throws IOException + * @throws ParseException + */ + public static Object parse(Reader r) throws IOException, ParseException + { + return Platform.parseJSON(r); + } + + public static Object parse(String json) throws ParseException + { + return Platform.parseJSON(json); + } + + public static String stringify(Object obj) + { + return new org.json.JSONObject(obj).toString(); } }