2013-04-17 111 views
1

我目前正在創建一個原生的web應用程序,該應用程序攔截來自UIWebView的JavaScript事件,並通過類似於此處所述方法(http://adoptioncurve.net/archives/2012/09/calling-objective-c-methods-from-javascript-in-a-uiwebview/)的修改的url字符串來回轉換數據。在其中一個攔截點處,我收回了一些我需要解析的JSON對象,經過幾個小時的搜索後,我不知所措。Xcode Javascript JSON解析

將JSON對象解析爲一個字符串,我需要在我注入的JavaScript文件中執行操作,或者有一些方法可以將對象傳回(使用此實現)到我的objective-c類並處理解析?如果它需要在JavaScript文件中完成,我將如何實現?由於這不是真正的Web瀏覽器,我不能簡單地調用JSON.parse(),因爲必要的庫不在那裏。

for (var i = 0; i < jsonData.length; i++) 
{ 
    var jsonString = jsonData[i]; 
    alert('jsonData :' + jsonString); 
} 

execute('communicateWithApp://event=' + jsonData); 

回答

0

嘗試http://www.json.org/js.html如果要將JSON對象轉換爲字符串。


你可以直接使用javascript解析JSON,不需要額外的lib。

var myJSONObject = eval('(' + myJSONtext + ')');

您還可以解析使用NSJSONSerialization Objective-C的JSON字符串。您可以首先使用NSString的方法dataUsingEncoding:或其他方法將字符串覆蓋到NSData。

+0

我的理解是,eval將JSON字符串轉換爲JSON對象,我需要以其他方式從JSON對象轉換爲JSON字符串。那是不正確的? –

+0

對不起,我弄錯了。如果你想隱藏對象到JSON字符串,爲什麼不嘗試一些第三部分庫?例如。 http://www.json.org/js.html – BB9z