Xcode iOS:如何解析这个 JSON?

Posted

技术标签:

【中文标题】Xcode iOS:如何解析这个 JSON?【英文标题】:Xcode iOS : How to parse this JSON? 【发布时间】:2017-08-03 07:34:04 【问题描述】:

我正在尝试解析这个 JSON 字符串。但是我一直在 NSArray 遇到问题。

var tContacts: [String] = []


if let jsonData = data 
                //let jsonObj = try! JSONSerialization.jsonObject(with: jsonData, options: [])
                let jsonObj = try! JSONSerialization.jsonObject(with: jsonData, options: []) as! [String:AnyObject]
                print(jsonObj)



                let rescode = jsonObj["respond"] as! String?
               altogether")


                self.tContacts = jsonObj["mylist"] as! Array  **(ERROR HERE)**
................
...........
......

错误: 无法将“__NSDictionaryI”(0x107b25288)类型的值转换为“NSString”(0x107130c60)。

["list_id": 1, "respond": success, "mylist": <__NSArrayI 0x618000231b60>(

    email = "porkman@live.com";
    name = John;
    status = active;
,

    email = "gorillaunderwear@gmail.com";
    name = Gregh;
    status = active;

)
]

【问题讨论】:

你是如何定义 self.tContacts 的? 像这样:var tContacts: [String] = [] jsonObj["mylist"] 是一个[[String:Any]](字典数组),它与tContacts 定义的[String](字符串数组)不同。 @OneNation 试试var tContacts: NSDictionary ! 【参考方案1】:

tContacts 是一个字符串数组,但 jsonObj["mylist"] 返回字典数组。您可以将 tContacts 声明为 Any 对象数组

var tContacts: [Any] = []  or
var tContacts:[[String:Any]] = [[:]]

【讨论】:

【参考方案2】:

var tContacts: [String] = [] 替换为 var tContacts: [[String:AnyObject]] = [[String:AnyObject]]()

希望对你有所帮助...

【讨论】:

以上是关于Xcode iOS:如何解析这个 JSON?的主要内容,如果未能解决你的问题,请参考以下文章

解析 Json Xcode

xcode如何等到json数据解析?

Xcode如何解析Json对象

如何在ios7中解析这个json数据

如何在 Swift 3 中使用 Alamofire 4 解析这个 json?

如何在 iOS XCode 中为 JSON 定义结构?