我在Swift中创建了一个对象数组,它具有以下结构:
var myCart:[FoodItem] = []
var dump:
▿ 3 elements
▿ [0]: TablePinAdolfoTesting.FoodItem #0
- id: 5
- name: Taco
- cant: 2
▿ [1]: TablePinAdolfoTesting.FoodItem #1
- id: 6
- name: Burrito
- cant: 1
▿ [2]: TablePinAdolfoTesting.FoodItem #2
- id: 4
- name: Enchiladas
- cant: 3
我使用Alamofire从我的API获取所述对象但是现在,在稍微更改它们之后,我想将它插入到我创建的新JSON中:
var json: JSON = ["idUser": idUser, "total_loyalty_points": totalLP, "total_price": totalPrice, "car": []]
打印json:
{
"total_price" : 50000,
"car" : [
],
"idUser" : 58,
"total_loyalty_points" : 5000
}
我有2个问题......
第二个问题是我不知道如何在我的JSON中放置我的对象数组来获得这样的东西:
{"idUser": (int),
"total_loyalty_points": (double),
"total_price":(double),
"car":[
{
"id": (string),
"name": (string),
"cant": (int)
}
]
}
其中“car”是该JSON中的对象数组。我希望使用SwiftyJSON这样做,如果可能的话,保持一致性,但这不是必需的。
我试过但不起作用的一件事是以下
for object in cart.myCart{
var name = [String: String]()
name["id"] = object.id
name["name"] = object.name
json["car"] = JSON(name)
json["car"]["cant"] = JSON(object.cant)
}
它不起作用的原因是这不会在Cart中创建一个数组,它只会覆盖JSON
感谢。
答案 0 :(得分:1)
对于第一个问题,没有解决方案,因为地图或字典不维护订单。
第二个问题是因为你将json [" car"]分配给JSON,这是一个对象而不是对象数组。修改后的代码是:
var cars = [[String: String]]()
for object in cart.myCart{
var name = [String: String]()
name["id"] = object.id
name["name"] = object.name
name["cant"] = object.cant
cars.append(name)
}
json["car"] = JSON(cars)