2010-05-31 78 views
4

我們如何使用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);  
}-*/; 

它的工作原理,這看起來好嗎?

謝謝!

回答

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

好,謝謝我結束了使用json2從JSON組織網站,將更新Q,似乎運作良好。 – user246114 2010-05-31 15:24:26

+0

太棒了,很高興聽到它(特別是因爲我列出的代碼是非正式的,未經測試:-)) – Bosh 2010-05-31 15:29:34