GWT中的安全JSON解析?

时间:2010-05-31 05:07:11

标签: gwt

我们如何使用GWT进行安全的JSON解析?它看起来像json解析器GWT提供使用eval() - 是否有一个不同的选项,它在可用时使用本机实现?

由于

-------------编辑----------------------------

好的,我从这里得到了一个脚本:

http://code.google.com/p/json-sans-eval/

应该不使用eval(所以我希望安全!),然后像这样使用它:

private native JavaScriptObject nativeParseUntrustedJson(String jsonString) /*-{ 
    return $wnd.jsonParse(jsonString);    
}-*/; 

它有效,看起来不错吗?

谢谢!

1 个答案:

答案 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));
相关问题