我们如何使用 GWT 进行安全的 JSON 解析?看起来 GWT 提供的 json 解析器使用 eval() - 是否有不同的选项在可用时使用 native 实现?
谢谢
- - - - - - - 编辑 - - - - - - - - - - - - - -
好的,我从这里得到了一个脚本:
http://code.google.com/p/json-sans-eval/
应该不使用 eval (所以我希望应该是安全的!),并像这样使用它:
private native JavaScriptObject nativeParseUntrustedJson(String jsonString) /*-{
return $wnd.jsonParse(jsonString);
}-*/;
它有效,看起来好吗?
谢谢!!
最佳答案
我不知道有任何内置的 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));
关于gwt - GWT 中的安全 JSON 解析?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2941466/