gwt - GWT 中的安全 JSON 解析?

标签 gwt

我们如何使用 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/

相关文章:

gwt - 在 GWT 上将字符串转换为日期

javascript - Firefox 中 javascript RegExp 的奇怪行为

css - GWT:标签 getOffsetHeight() 值与 CSS 值不匹配

html - 如何在 GWT 中创建多行列表框?

GWT RPC 和持久 Java 对象

java - Flex 和 Java GWT 集成

java - 在 gwt 中从 Formpanel 接收数据

java - GWT TextBox、DateBox 等不共享相同的基本输入类

java - 本地tomcat中的GWT应用: nocache. js 404未找到

java - 将 html+css+js 转换为 PDF