gpt4 book ai didi

ios - 如何检查字典值是字符串还是数组

转载 作者:行者123 更新时间:2023-11-30 11:04:31 33 4
gpt4 key购买 nike

我有来自服务器的数据,例如

[
{
"id": 1,
"name": "16",
"children": "",
"products": [
{...},
{...}
]
},
{
"id": 2,
"name": "17",
"children": "",
"products": [
{...},
{...}
]
}
]

所以我将其保存为 [[String: Any]] ,和Any是因为可以有Int , StringDict在值(value)观。

重点是“children”键可以是NSConstantstring并且可以转换为 String ,也可以是 NSArray并且可以转换为 [[String: Any]]也。所以我需要找到一种方法来检测该值的类型。但我尝试的一切都导致了错误。

我该如何解决这个问题?

UPD代码不多)

alamofire 内部响应:

        let data = responseJSON.result.value! as! [String: Any]
let subCategory = data["children"] as! [[String: Any]]
//check

for item in subCategory {
print(type(of: item["children"]!))//__NSArrayI or __NSCFConstantString

}

如果我尝试类似 print(type(of: item["children"] as! String))它打印 String如果有__NSCFConstantString ,但如果不是 - 它会崩溃并显示错误 Could not cast value of type '__NSArrayI' (0x10934fe48) to 'NSString' (0x1083e8568)

更新2数据没有问题,全部解析正确,保存正确,打印也正确

最佳答案

您可以将字典中的值转换为所需的类型:

if let string = dictionary["children"] as? String {
// Do something with string
} else if array = dictionary["children"] as? [Any] {
// Do something with array
}

关于ios - 如何检查字典值是字符串还是数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52872577/

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