【发布时间】:2015-08-29 03:08:36
【问题描述】:
使用 swift 和 swifty 我正在尝试执行以下操作:
var jsonArray: [JSON] = []
for entryMap in userDistrictEntryMaps
{
var map: UserDistrictEntryMap = entryMap
let entry = JSON(
[
"itemID": String(map.entryID),
"data": map.entryData
]
)
jsonArray.append(entry)
}
let parameters = JSON(
[
"token" : sessionMap.token,
"districtID" : String(sessionMap.defaultDistrictID)
]
)
我正在尝试弄清楚如何将“条目”添加到参数并为其分配 jsonArray 数据
我尝试了以下方法,但它给出了错误。
parameters["entrys"] = JSON(jsonArray).arrayValue
知道我做错了什么吗?
更新 1
好的,问题是参数设置为 let。我将其更改为 var 和 更改为:
parameters["entrys"] = JSON(jsonArray).rawString()
但是使用 rawString() 可能是无效的,因为如果我将原始数据打印到许多反斜杠上:
[\n {\n \\"data\\" : \\"QXJyZXN0cyA4OjUyIFBN\\",\n \\"passdownItemID\\" : \\"17\\"\n }...
更新 2
我修改了我的代码,这有效:
var entrys: [AnyObject] = [AnyObject]()
for entryMap in userDistrictEntryMaps
{
var map: UserDistrictEntryMap = entryMap
let entry =
[
"itemID": String(map.itemID),
"data": map.entryData
]
entrys.append(entry)
}
var parameters1 =
[
"token" : sessionMap.token,
"districtID" : String(sessionMap.defaultDistrictID),
"entrys" : []
]
parameters["entrys"] = entrys
【问题讨论】:
-
编译错误为:无法将“[JSON]”类型的值赋给“JSON”类型的值
-
错误是说你试图将一个 JSON 数组分配给一个 JSON 类型的对象,这不是一个数组
标签: swift swifty-json