gpt4 book ai didi

ios - NSJSONSerialization.JSONObjectWithData 改变返回结果的内容?

转载 作者:行者123 更新时间:2023-11-29 01:20:28 26 4
gpt4 key购买 nike

func retrieveData(englishWord : String, completionHandler : (success: Bool, data : [String : AnyObject]?, errorString : String?) -> Void) {
let baseURL = "https://api.pearson.com/v2/dictionaries/ldoce5/entries?headword=vodka"
let urlString = baseURL
print(urlString)
let url = NSURL(string: urlString)
let request = NSMutableURLRequest(URL: url!)
let session = NSURLSession.sharedSession()
let task = session.dataTaskWithRequest(request) { data, response, error in
if error != nil {
completionHandler(success: false, data: nil, errorString: "There was a networking error")
return
}
if data == nil {
completionHandler(success: false, data: nil, errorString: "There was an error in the request for data")
return
}

let parsedResult : AnyObject?
do {
parsedResult = try NSJSONSerialization.JSONObjectWithData(data!, options: .AllowFragments) as! [String : AnyObject]
print(parsedResult!)

} catch {
completionHandler(success: false, data: nil, errorString: "There was an error in the conversion for data")
return
}

}
task.resume()
}

现在 print(parsedResult!) 给出:

{ count = 1; limit = 10; offset = 0; results = ( { datasets = ( ldoce5, dictionary ); headword = vodka; id = cqAG3cXCxZ; "part_of_speech" = noun; pronunciations = ( { audio = ( { lang = "British English"; type = pronunciation; url = "/v2/dictionaries/assets/ldoce/gb_pron/vodka0205.mp3"; } ); ipa = "\U02c8v\U0252dk\U0259"; }, { audio = ( { lang = "American English"; type = pronunciation; url = "/v2/dictionaries/assets/ldoce/us_pron/vodka.mp3"; } ); ipa = "\U02c8v\U0251\U02d0dk\U0259"; lang = "American English"; } ); senses = ( { definition = ( "a strong clear alcoholic drink originally from Russia, or a glass of this" ); } ); url = "/v2/dictionaries/entries/cqAG3cXCxZ"; } ); status = 200; total = 1; url = "/v2/dictionaries/ldoce5/entries?headword=vodka"; }

但是查询URL:Here

为了方便起见,我将其发布在这里:

{"status":200,"offset":0,"limit":10,"count":1,"total":1,"url":"/v2/dictionaries/ldoce5/entries?headword=vodka","results":[{"datasets":["ldoce5","dictionary"],"headword":"vodka","id":"cqAG3cXCxZ","part_of_speech":"noun","pronunciations":[{"audio":[{"lang":"British English","type":"pronunciation","url":"/v2/dictionaries/assets/ldoce/gb_pron/vodka0205.mp3"}],"ipa":"ˈvɒdkə"},{"audio":[{"lang":"American English","type":"pronunciation","url":"/v2/dictionaries/assets/ldoce/us_pron/vodka.mp3"}],"ipa":"ˈvɑːdkə","lang":"American English"}],"senses":[{"definition":["a strong clear alcoholic drink originally from Russia, or a glass of this"]}],"url":"/v2/dictionaries/entries/cqAG3cXCxZ"}]}

NSJSONSerialization 更改我的数据是否有原因,因为打印出的数据与 Pearson API 返回的数据明显不同?

最佳答案

我不相信它实际上改变了值(value)观,我相信你只是在看一种不同的表现形式。 (如果 Swift 的行为类似于 Objective-C),print(x) 将调用 x 上的“描述”方法,它可以以任何它喜欢的格式输出对象。

您可能想要做的是使用以下方法重新编码数据:dataWithJSONObject:options:error(与您所做的基本上相反的调用),并查看表示是什么。

https://developer.apple.com/library/ios/documentation/Foundation/Reference/NSJSONSerialization_Class/#//apple_ref/occ/clm/NSJSONSerialization/dataWithJSONObject:options:error :

关于ios - NSJSONSerialization.JSONObjectWithData 改变返回结果的内容?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34668557/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com