gpt4 book ai didi

json - Swift3 JSONSerialization with [String :Any] rather than NSDictionary

转载 作者:搜寻专家 更新时间:2023-10-31 22:01:54 25 4
gpt4 key购买 nike

假设你有一个 json 字符串 someText 并且你想将它解析为字典。以前我做过这个......

let jsonResult: NSDictionary =
try JSONSerialization.jsonObject(
with: someText.data(using: .utf8)!,
options: JSONSerialization.ReadingOptions.mutableContainers)
as! NSDictionary

但这只是一个蹩脚的NSDictionary

看来你确实可以做到这一点......

let jsonResult: [String:Any] =
try JSONSerialization.jsonObject(
with: someText.data(using: .utf8)!,
options: JSONSerialization.ReadingOptions.mutableContainers)
as! [String:Any]

现在这是一个真正的 Swift 字典。

这个有用吗?是否存在巨大的效率差异,或者可能存在其他问题?

让我感到困惑,

  open class func jsonObject(with data: Data,
options opt: JSONSerialization.ReadingOptions = []) throws -> Any

无论如何,调用只会返回Any。因此,当您将它转换到您的 [String:Any]NSDictionary 时,流程是什么,什么是最好的?

最佳答案

Are there drastic efficiency differences

是的,有。

NSDictionary 完全没有类型信息,原生 Swift 集合类型效率更高,强烈推荐。您可以使用 var 免费获得可变性。 mutableContainers 在 Swift 中无论如何都是无用的。

jsonObject(with data 返回 Any 因为返回类型可以是 DictionaryArray 甚至 String/Number,最小公分母是Any,将其转换为期望的类型。

关于json - Swift3 JSONSerialization with [String :Any] rather than NSDictionary,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41061912/

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