在项目中,我必须将复杂的 JSON 命令从服务器发送到客户端。生成 JSONObjects(字符串、数字等)将它们转换为字符串然后通过 RequestBuilder 发送它们是否有效,或者是否有更有效的方法。
将 JSON 对象转换为字符串是否有效(通过对象上的 .toString 方法)
代码示例:
JSONObject retObject = new JSONObject();
retObject.put("NumberVar", new JSONNumber(1));
retObject.put("StringVar", new JSONString("HelloWorld"));
JSONArray arrayVar= new JSONArray();
for (int i = 0; i < 5; i++) {
arrayVar.set(i,
new JSONString("Array"));
}
retObject.put("EventParameters", arrayVar);
System.out.println(retObject.toString());
Output:
{"NumberVar":1, "StringVar":"HelloWorld", "EventParameters":["Array","Array","Array","Array","Array"]}
问候,
斯特凡
您拥有的解决方案将会起作用。
如果你想更有效地做到这一点,并且你只想支持现代浏览器JSON.stringify()
,你可以在JavaScriptObjects
代替JSONObjects
并使用这个本机方法:
private static native String stringify(JavaScriptObject jso) /*-{
return JSON.stringify(jso);
}-*/;
或者,您可以通过执行以下操作对 JSO 进行字符串化:
String json = new JSONObject(jso).toString();
JavaScriptObject
s 更高效,因为它们在最终编译的代码中表示为 JS 对象,而JSONObject
s 被表示为模拟的 Java 对象。第二种解决方案意味着构建 JSO 时的开销较小,但在对其进行字符串化时相对较多(比第一个解决方案)。
不过,您的解决方案会很好地工作。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)