2017-05-04 119 views
-2

我的API期望在收到以下形式字典的轉換陣列JSON格式

{ 
    "user_contacts" : [ 
    { 
     "friend_list" : "+928885555512", 
     "user_id" : "1" 
    }, 
    { 
     "friend_list" : "+925555648583", 
     "user_id" : "1" 
    }, 
    { 
     "friend_list" : "+925555228243", 
     "user_id" : "1" 
    } 
    ] 
} 

我已經在字典中的陣列創建的這個數據和它的工作正常,它是在型Data變量存儲JSON數據。作爲alamofire需要[String: Any]類型的參數,所以我必須將這些數據轉換成所需的格式,所以我嘗試這樣做:

let my_dict = try JSONSerialization.jsonObject(with: jsonData!, options: []) as! [String: Any] 

但是當打印此my_dict通話alamofire之前。它似乎不是一個正確的JSON見下文......有類似的東西:__NSArrayI 0x618000271dc0>

["user_contacts": <__NSArrayI 0x618000271dc0>(
{ 
    "friend_list" = "+928885555512"; 
    "user_id" = "1"; 
}, 
{ 
    "friend_list" = "+925555228243"; 
    "user_id" = "1"; 
}, 
{ 
    "friend_list" = "+925554787672"; 
    "user_id" = "1"; 
} 
) 
] 

那麼,怎樣才能讓我這個正確的JSON形式? 我做錯了什麼?

更新時間:

let updated_User_No :[String:Any]=["friend_list": self.new_convert_telephone_no,"user_id": user_no]; 

       user_outer_arrary.append(updated_User_No); 

       user_inner_array=["user_contacts": user_outer_arrary] 

它應該是這個樣子:

{ 
    "user_contacts" : [ 
    { 
     "friend_list" : "+928885555512", 
     "user_id" : "1" 
    }, 
    { 
     "friend_list" : "+925555648583", 
     "user_id" : "1" 
    } 
    ] 
} 
+0

你確實有斯威夫特/ iOS的序列化JSON對象。我認爲Alamofire使用不同的數據結構;-)您需要將ios原生數據結構轉換爲alamofire的預期字符串數據結構:這可能會幫助您:http://stackoverflow.com/questions/6368867/generate-json- string-from-nsdictionary-in-i – Lepidopteron

+0

thnaks!但它不能解決我的問題。我已經提供了json數據,但它是類型數據變量。有什麼方法可以將字符串中的json數據存儲在[string:any]類型中。 – catalyst

+0

user_inner_array是這個數組嗎? – KKRocks

回答

1

試試這個:

創建結構

let users = ["" : ["user_contacts": [["friend_list":"user_id"],["friend_list3":"user_id3"]]]] 

創建JSON對象

let json = try JSONSerialization.jsonObject(with: data!, options:.prettyPrinted) as? [String : AnyObject] 
+0

不工作。同樣的東西打印。 – catalyst

+0

@KKRocls:無效。現在它打印:可選([AnyHashable(「user_contacts」)):<__ NSArrayI 0x610000274600>( – catalyst

+0

你可以發佈代碼如何設置這種格式? – KKRocks

1

執行如下JSONSerialization

let json = try JSONSerialization.jsonObject(with: data, options: .allowFragments) as? Dictionary<AnyHashable, Any> 
+0

@catalyst嘗試我的代碼。 –