在项目中,我必须从服务器向客户端发送复杂的JSON命令.生成JSONObjects(字符串,数字等)将它们转换为字符串然后通过RequestBuilder发送它们是否有效,或者是否有更有效的方法.
将JSON对象转换为字符串(通过Object上的.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());
Run Code Online (Sandbox Code Playgroud)
输出:
{"NumberVar":1, "StringVar":"HelloWorld", "EventParameters":["Array","Array","Array","Array","Array"]}
Run Code Online (Sandbox Code Playgroud)
此致,斯特凡
你的解决方案将起作用.
如果您想更有效地完成它,并且您只想支持支持的现代浏览器JSON.stringify(),您可以使用以下方法JavaScriptObjects而不是JSONObjects使用此本机方法:
private static native String stringify(JavaScriptObject jso) /*-{
return JSON.stringify(jso);
}-*/;
Run Code Online (Sandbox Code Playgroud)
或者,您可以执行以下操作来对JSO进行字符串化:
String json = new JSONObject(jso).toString();
Run Code Online (Sandbox Code Playgroud)
JavaScriptObjects更有效,因为它们在最终编译的代码中表示为JS对象,而JSONObjects表示为模拟的Java对象.第二种解决方案在构造JSO时意味着更少的开销,但是当你对它进行字符串化时,相对更多(比第一种)更多.
您的解决方案可以正常工作.
| 归档时间: |
|
| 查看次数: |
3711 次 |
| 最近记录: |