簡體   English   中英

將AnyObject / NSDictionary(JSON)轉換為字符串?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM