在GWT中安全的JSON解析?

问题描述:

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

谢谢

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

好吧,我从这里的脚本:

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)); 
+0

好,谢谢我结束了使用json2从JSON组织网站,将更新Q,似乎运作良好。 – user246114 2010-05-31 15:24:26

+0

太棒了,很高兴听到它(特别是因为我列出的代码是非正式的,未经测试:-)) – Bosh 2010-05-31 15:29:34