我很好奇爲什麼我的json的格式不正確。我試圖添加一個數組字典,我弄明白了,我的json不是正確的格式,ACTIVE_CHATS和INACTIVE_CHATS應該是我在swift3上通過.append(value)創建的數組列表。但是在我嘗試使用JSON.parse之後,我的反應字符串化了,我得到了未被捕獲的json位置。我檢查與Android團隊,找出它應該[]而不是()陣列..我如何得到正確的格式爲JSON在迅速?JSON解析來自Swift轉換的json字符串失敗
這是我目前的JSON格式這是不對的
{
"ACTIVE_CHATS" = (
);
"INACTIVE_CHATS" = (
{
"app_token" = "someapptoken";
"channel_name" = "Channel-1";
icon = "https://media.icon.com/icons/appicon-1.jpg";
"last_message" = "some message";
"time_since_last_message" = "2017-03-28 06:13:33 +0000";
"unread_messages" = 3;
}
);
"ALL_CHAT" = {
"app_token" = "someapptoken";
"channel_name" = "Channel-2";
icon = "https://media.icon.com/icons/appicon-2.jpg";
"last_message" = "Some message";
"time_since_last_message" = "2017-03-28 06:13:33 +0000";
"unread_messages" = 3;
};
}
我的代碼的時候創建快捷
var activearray = Array<Any>()
var inactivearray = Array<Any>()
var testdict = [String: Any]()
var counter = 0
for data in array {
var listMessage : [Any?] = (Smooch.conversation()?.messages)!
let unreadMsgCount = Smooch.conversation()?.unreadCount
if listMessage.count == 0{
continue
}
var iconUrl = ""
var channelName = ""
for msg in listMessage {
let msgSkt = msg as! SKTMessage
if (!msgSkt.isFromCurrentUser) {
iconUrl = (msg as! SKTMessage).avatarUrl!
channelName = (msg as! SKTMessage).name!
break
}
}
let lastMsg : SKTMessage = listMessage[listMessage.count - 1] as! SKTMessage
let lastMsgText : String = lastMsg.text!
let epTime : Date = lastMsg.date!
var dict = [String: Any]()
dict = ["unread_messages":unreadMsgCount! as UInt,"icon":iconUrl,"channel_name":channelName,"last_message":lastMsgText,"time_since_last_message":epTime,"app_token":array[counter]]
if counter == 0 {//put all
testdict["ALL_CHAT"] = dict
}else if counter > 0 && unreadMsgCount! > 0{// add active
activearray.append(dict)
}else{//add unactive
inactivearray.append(dict)
}
counter += 1
}
testdict["ACTIVE_CHATS"] = activearray
testdict["INACTIVE_CHATS"] = inactivearray
你從哪裏得到上面的輸出? – Fahim
@Fahim我輸出我的json使用nsstring格式從obj-c ... 然後我解析使用JSON.parse從反應本機得到未捕獲的位置JSON,檢查與JSON解析器也相同的錯誤。 – Abadi
對不起,我的意思是原始JSON的來源是什麼?這是來自API端點嗎?如果是的話,那麼你可能需要通過API端點正確格式化JSON ... – Fahim