因为我需要调用API和API Expects来接收JSON。所以我创建了想要转换成json形式的数据,如Alamofire所要求的那样。但是当我将其转换为Json并在调用Jsonobj
之前打印Alamofire
< NSArrayxxxxx
>显示。
这里我正在转换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]
let bytes = try! JSONSerialization.data(withJSONObject: user_inner_array, options: JSONSerialization.WritingOptions.prettyPrinted)
var jsonObj = try! JSONSerialization.jsonObject(with: bytes, options: .mutableLeaves) as! [String: Any]
print(bytes)
print(jsonObj)
更新:
Alamofire.request(myurl,parameters: jsonObj, encoding: JSONEncoding(options: [])).validate().responseJSON { response in
debugPrint(response) // original URL request
print(response.response) // HTTP URL response
print(response.data) // server data
print(response.result)
switch response.result {
case .success:
print("Validation Successful")
case .failure(let error):
print(error)
}// result of response serialization
if let JSON = response.result.value
{
print("JSON: \(JSON)")
}
}
答案 0 :(得分:0)
JSONSerialization
通过Objective-C工作,并创建像NSDictionary
和NSArray
这样的Objective-C结构。因为您已经要求.mutableLeaves
" userContacts"值必须包含可变值,系统将它们保存为存储在NSMutableDictionary
中的NSArray
个对象,并且您看到NSArray
。
答案 1 :(得分:0)
也许存在误解。
您正在转换
data(withJSONObject
然后jsonObject(with
将JSON数据返回到字典。您需要将 bytes
发送到服务器而不是jsonObj
,但是服务器并不关心美学,因此prettyprinted
是不必要的。
不需要第二次转换回字典。然而,jsonObj
的输出绝对正确。
永远不会传递.mutableContainers
和.mutableLeaves
选项。它们在Swift中毫无意义,因为var
iables默认是可变的。