[英]Convert AnyObject / NSDictionary (JSON) to string?
我正在調用Facebook圖作為朋友列表,我想將其作為參數發送到UIWebView
的javascript函數。
我的問題是我無法將響應( AnyObject
/ NSDictionary
)轉換為普通的簡單String
。
在此示例中,我希望將完整的響應作為字符串發送到JavaScript方法,以供內部使用。
(當前我得到一個空String
,到目前為止,我所做的每一次嘗試都失敗了)
let graphFriendsRequest : FBSDKGraphRequest = FBSDKGraphRequest(graphPath: "me/friends", parameters: nil)
graphFriendsRequest.startWithCompletionHandler({ (connection, result, error) -> Void in
if ((error) != nil)
{
// Process error
println("Error: \(error)")
}
else
{
println("fetched friends: \(result)")
let data:NSDictionary=result as! NSDictionary
var jsmethod = NSString(format:"setusers('%@')",data) as String
self.webView.stringByEvaluatingJavaScriptFromString(jsmethod)
}
})
按照您在注釋中所說的,我認為您應該生成JSON而不是操縱字符串本身。
您在Swift應用程序中接收到JSON,並且想要在JavaScript中使用JSON:無需使用“清理過的”字符串。
// Bogus data for example: an array with a dictionary
let exampleString = "[{\"fields\": {\"key1\": 42}}]" // it would be `jsmethod` for you
let exampleStringData = exampleString.dataUsingEncoding(NSUTF8StringEncoding, allowLossyConversion: false)
// Cocoa object from data
var arrayFromData = NSJSONSerialization.JSONObjectWithData(exampleStringData!, options: nil, error: nil) as! NSArray
// JSON from the object
var toJS = NSJSONSerialization.dataWithJSONObject(arrayFromData, options: NSJSONWritingOptions.PrettyPrinted, error: nil)
然后將此真實的JSON發送到您的JavaScript。
編輯:
您是否在談論用URL和空格對字符串進行消毒? 如果是,您可以這樣做(許多選項):
let sanitized = jsmethod.stringByAddingPercentEscapesUsingEncoding(NSUTF8StringEncoding)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.