gpt4 book ai didi

ios - 遍历来自 Alamofire 的 JSON 响应

转载 作者:行者123 更新时间:2023-12-01 18:47:24 25 4
gpt4 key购买 nike

我正在使用 xcode 7.2 和 swift 2.1.1。使用 Alamofire 进行服务器通信。我有一个显示动态数据的表格 View 。数据包括 username 、 useremail 、 profilePicture 等。我试图实现 this来自stackoverflow的代码。但我收到一条警告消息,上面写着 从“JSON”转换为不相关类型“[Dictionary]”总是失败我的 json 响应是

{
"JsonRequestBehavior" : 1,
"MaxJsonLength" : null,
"ContentType" : null,
"Data" : {
"_id" : "5658444778a7531f4c79c23d",
"Photo" : "",
"AllowSharing" : "YES",
"MemberCount" : 5,
"Users" : [
{
"_id" : "5658443478a7531f4c79c23c",
"Photo" : "",
"MembershipDate" : "0001-01-01T00:00:00",
"MiddleName" : null,
"FirstName" : "Gohan",
"LastName" : null,
"Email" : "gohan@gmail.com"
},
{
"_id" : "566ea5f1dfead62350cf0fad",
"Photo" : "",
"MembershipDate" : "0001-01-01T00:00:00",
"MiddleName" : null,
"FirstName" : null,
"LastName" : null,
"Email" : "sachin@gmail.com"
}
],
"MembershipDate" : "2015-12-14T12:03:12.819Z",
"CreatedBy" : "5658443478a7531f4c79c23c"
},
"ContentEncoding" : null,
"RecursionLimit" : null
}

如何循环 用户在 JSON 响应中?

编辑 根据 JohnyKutty 的回答,我在我的项目中尝试了相同的代码。相同的代码是
 Alamofire.request(.GET,App.AppHomeURL() + "Load_Group", parameters: ["groupid":"\(groupId)"]).responseJSON
{
response in
print("\(response.data)")
switch response.result
{

case .Success(let _data):
let jsonData = JSON(_data)
print("Admin Response : \(jsonData)")

do
{
let json = try NSJSONSerialization.JSONObjectWithData(_data as! NSData, options: .AllowFragments) as! NSDictionary
if let DataObject = json["Data"] as? NSDictionary
{
if let users = DataObject["Users"] as? [NSDictionary]
{
for user in users
{
print("User id : \(user["_id"])")
}
}
}

}

catch let error as NSError
{
print(error.localizedDescription)
}

在这行 让 json = 试试 NSJSONSerialization.JSONObjectWithData(_data as! NSData, options: .AllowFragments) as! NS词典
起初我使用“_data”,然后 Xcode 建议进行更改,它从 _data 更改为 _data as! NS 数据。

最佳答案

你儿子的结构如下
JSON(字典)-> 数据(字典)-> 用户(字典数组)。所以首先你应该从原始 json 中选择 Users 数组,然后遍历它。

由于 alamofire 已经在序列化您的响应,因此无需再次使用 JSONSerializer,我正在更新我的答案。

更新
在机箱内尝试此代码

if let DataObject = _data["Data"] as? NSDictionary {
if let Users = DataObject["Users"] as? [NSDictionary] {
for user in Users {
print(user["_id"],user["MembershipDate"],user["FirstName"],user["Email"], separator: " ", terminator: "\n")
}
}
}

完整代码:
Alamofire.request(.GET,App.AppHomeURL() + "Load_Group", parameters: ["groupid":"\(groupId)"]) .responseJSON { response in
switch response.result {

case .Success(let _data):
print(_data)
if let DataObject = _data["Data"] as? NSDictionary {
if let Users = DataObject["Users"] as? [NSDictionary] {
for user in Users {
print(user["_id"],user["MembershipDate"],user["FirstName"],user["Email"], separator: " ", terminator: "\n")
}
}
}

default:
break;
}


}

关于ios - 遍历来自 Alamofire 的 JSON 响应,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34412316/

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