我正在尝试使用SwiftHTTP
库从我的响应中提取键值。
以下是我的回复:
{
"statusCode": 200,
"statusMessage": "Success",
"data": {
"TotalCount": 3,
"GetHomeHistory": [
{
"GroupType": "3",
"GroupName": "name2",
"MessageId": 1829,
"ConversationId": 46,
"DeliveryTimeStamp": "4/6/2017 4:38:12 AM",
"MessageTranscationId": "3049",
"MessageText": "SGVsbG8=",
"Unread_Message_Count": 24,
"UserId": 69
},
{
"GroupType": "2",
"GroupName": "name2,name1",
"MessageId": 1754,
"ConversationId": 47,
"DeliveryTimeStamp": "3/4/2017 7:01:17 AM",
"MessageTranscationId": "2932",
"MessageText": "UnRncg==",
"Unread_Message_Count": 4,
"UserId": 69
},
{
"GroupType": "1",
"GroupName": "name3",
"MessageId": 1753,
"ConversationId": 49,
"DeliveryTimeStamp": "2/28/2017 10:23:24 AM",
"MessageTranscationId": "2931",
"MessageText": "UnRncg==",
"Unread_Message_Count": 1,
"UserId": 69
}
]
}
}
我正在尝试从“GetHomeHistory
”键中提取值。该库的链接如下
JSONJoy SwiftHTTP Library
我以下列方式打电话:
struct HomeModel : JSONJoy {
let status:Int
let message:String
let totalCount: Int
var conversationHistoryArr: [ConversationHistoryModel]? = [ConversationHistoryModel] ()
init(_ decoder: JSONDecoder) throws {
status = try decoder["statusCode"].getInt()
message = try decoder["statusMessage"].getString()
if let respData = decoder["data"].dictionary {
if respData["TotalCount"]?.getInt() != nil {
totalCount = (respData["TotalCount"]?.getInt())!
} else {
totalCount = 0
}
if respData["GetHomeHistory"]?.getArray(&conversationHistoryArr) != nil{
if let homeHistoryData = decoder["GetHomeHistory"].array{
for rsp in homeHistoryData {
let resp = try? ConversationHistoryModel(rsp)
print(resp as Any)
conversationHistoryArr?.append(resp!)
}
}
else{
conversationHistoryArr = [ConversationHistoryModel]()
}
}
}
else{
totalCount = 0
}
}
}
“ConversationHistoryModel
”如下:
struct ConversationHistoryModel : JSONJoy {
let groupType:String
let groupName:String
let messageId:Int
let conversationId:Int
let messageTime:String
let messageTransactionId:String
let messageText:String
let unreadMessageCount:Int
let userId:Int
init(_ respData: JSONDecoder) throws {
if respData["GroupType"].getString() != nil{
groupType = (respData["GroupType"].getString())!
}
else{
groupType = ""
}
if respData["GroupName"].getString() != nil {
groupName = (respData["GroupName"].getString())!
} else {
groupName = ""
}
if respData["MessageId"].getInt() != nil {
messageId = (respData["MessageId"].getInt())!
} else {
messageId = 0
}
if respData["ConversationId"].getInt() != nil {
conversationId = (respData["ConversationId"].getInt())!
} else {
conversationId = 0
}
if respData["DeliveryTimeStamp"].getString() != nil {
messageTime = (respData["DeliveryTimeStamp"].getString())!
} else {
messageTime = ""
}
if respData["MessageTranscationId"].getString() != nil {
messageTransactionId = (respData["MessageTranscationId"].getString())!
} else {
messageTransactionId = ""
}
if respData["MessageText"].getString() != nil {
messageText = (respData["MessageText"].getString())!
} else {
messageText = ""
}
if respData["Unread_Message_Count"].getInt() != nil {
unreadMessageCount = (respData["Unread_Message_Count"].getInt())!
} else {
unreadMessageCount = 0
}
if respData["UserId"].getInt() != nil {
userId = (respData["UserId"].getInt())!
} else {
userId = 0
}
}
}
请帮助我提取该值。