package org.qrone.r7.format; import java.io.IOException; import org.mozilla.javascript.Scriptable; import org.mozilla.javascript.json.JsonParser; import org.mozilla.javascript.json.JsonParser.ParseException; import org.qrone.r7.resolver.URIResolver; import org.qrone.r7.script.ServerJSDeck; import org.mozilla.javascript.Context; public class JSON extends XFormat<Object>{ private Scriptable scope; private Context context; public JSON(URIResolver r, Scriptable scope, Context context) throws IOException{ super(r); this.scope = scope; this.context = context; } public Object parse(String json){ JsonParser p = new JsonParser(context, scope); try { return p.parseValue(json); } catch (ParseException e) { return null; } } public String stringify(Object s){ return net.arnx.jsonic.JSON.encode(s); } @Override public Object decode(String data) { return parse(data.toString()); } @Override public String encode(Object data) { return stringify(data); } }