我们如何使用GWT进行安全的JSON解析?它看起来像json解析器GWT提供使用eval() - 是否有一个不同的选项,它在可用时使用本机实现?
由于
-------------编辑----------------------------
好的,我从这里得到了一个脚本:
http://code.google.com/p/json-sans-eval/
应该不使用eval(所以我希望安全!),然后像这样使用它:
private native JavaScriptObject nativeParseUntrustedJson(String jsonString) /*-{
return $wnd.jsonParse(jsonString);
}-*/;
它有效,看起来不错吗?
谢谢!
答案 0 :(得分:3)
我不知道有任何内置的GWT方法来解析JSON而不回复eval,但你可以尝试通过JSNI使用你最喜欢的解析器然后返回一个JavaScriptObject来传递给JSONObject的构造函数,例如
native JavaScriptObject native_parse(String json_data) /*-{
return $wnd.JSON.parse(json_data);
}-*/;
其中JSON.parse可以引用https://github.com/douglascrockford/JSON-js/blob/master/json2.js,例如通过以下HTML:
<script src="json2.js"></script>
然后尝试通过以下方式创建JSONObject:
new JSONObject(native_parse(json_data));