将字典数组转换为JSON格式

时间:2017-05-04 07:20:26

标签: ios arrays json swift

我的api希望以下面的形式接收JSON数据

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

我已经通过字典数组创建了这些数据并且工作正常,它存储在Data类型的变量中。由于alamofire需要[String: Any]类型的参数,所以我必须将该数据转换为所需的格式,所以我尝试了这个:

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

但是在打电话给alamofire之前打印这个my_dict。似乎这不是一个正确的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"
    }
  ]
}

2 个答案:

答案 0 :(得分: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]

答案 1 :(得分:1)

执行 JSONSerialization ,如下所示:

override func tableView(_ tableView: UITableView, heightForHeaderInSection section: Int) -> CGFloat {

}
override func tableView(_ tableView: UITableView, viewForHeaderInSection section: Int) -> UIView? {

}