我想让这个数组包含要在api中传递的字典。
请在最后检查参数结果" \ n"
[{"user_id":"46","e_id":"566","date_list":"2018\/04\/20","t_depo":" 0.0","mini":"200","real_earn":"-5000.0","mb_balance":"-4000.0","balance_for":"4000"}]
任何想法?
我尝试以这种方式发送api但没有工作
var ary : [[String:String]] = []
var mutableDictionary = [String: String]()
var mutableArray:NSMutableArray!
mutableDictionary.updateValue("\(appdel.dateSelected!)", forKey: "date_list")
mutableDictionary.updateValue("\(user_id)", forKey: "user_id")
mutableDictionary.updateValue("566", forKey: "e_id")
mutableDictionary.updateValue("\(RupeesDepositeTotal.text!)", forKey: "t_depo")
mutableDictionary.updateValue("300", forKey: "mini")
mutableDictionary.updateValue("\(RealIncomeTF.text ?? "0")", forKey: "real_earn")
mutableDictionary.updateValue("\(RealIncomeTF.text ?? "0")", forKey: "mb_balance")
mutableDictionary.updateValue("\(newBalanceLabel.text ?? "0")", forKey: "balance_for")
ary.append(mutableDictionary)
mutableArray = NSMutableArray(array: ary)
print(mutableArray)
我传递的参数如下:
let parameters: Parameters = [
"insert": "0",
"Data": "\(mutableArray!)"
]
当我打印可变数组时,这是我的控制台
(
{
"balance_for" = "-231.0";
"date_list" = "2018/04/20";
"e_id" = 566;
"mb_balance" = 33;
mini = 300;
"real_earn" = 33;
"t_depo" = 264;
"user_id" = 46;
}
)
当我打印参数时:
["insert": "0", "Data": "(\n {\n \"balance_for\" = \"-10.0\";\n \"date_list\" = \"2018/04/20\";\n \"e_id\" = 566;\n \"mb_balance\" = 6;\n mini = 300;\n \"real_earn\" = 6;\n \"t_depo\" = 16;\n \"user_id\" = 46;\n }\n)"]
答案 0 :(得分:0)
试试这个
var dict = [String: String]()
dict["user_id"] = "46"
dict["e_id"] ="566"
dict["date_list"] = "2018/04/20"
dict["t_depo"] = " 0.0"
dict["mini"] = "200"
dict["real_earn"] = "-5000.0"
dict["mb_balance"] = "-4000.0"
dict["balance_for"] = "4000"
var dictArray = [dict];
print(dictArray)
答案 1 :(得分:0)
你这样做:
let parameters: Parameters = [
"insert": "0",
"Data": "\(mutableArray!)"
]
你做错了什么:
"Data": "\(mutableArray!)"
这是使用mutableArray
的描述。
相反:
"Data": mutableArray
你不应该做什么:
不要像NSStuff
一样使用NSMutableArray
,在可用时更喜欢使用Swift:Swift Array
。
现在,对于表示,你想要的是JSON。
let jsonData = try? JSONSerialization.data(withJSONObject: parameters, options: [])
let jsonStringified = String(data: jsonData!, encoding: .utf8)
print("jsonStringified: \(jsonStringified!)")
小心,我用过试试? (没有做catch
),并且为了显示逻辑而强制解包jsonData!
。你不应该在最后的工作中这样做。
jsonData
,这是你可以放到myURLRequest.httpBody = jsonData
的值,Stringified只是用于调试。如果您使用Alamofire
或大多数其他第三方HTTP请求库,只需使用Parameters
即可。