如何将我的对象数组插入 JSON?
How can I insert my array of Objects in a JSON?
我在 Swift 中创建了一个对象数组,它具有以下结构:
var myCart:[FoodItem] = []
变量转储:
▿ 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 个问题...
- 出于某种原因,"car" 被放置在第二个位置,即使我在 JSON 声明期间将它放在最后。
第二个问题是我不知道如何将我的对象数组放在 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)
}
它不起作用的原因是这不会在购物车中创建数组,它只会覆盖 JSON
谢谢。
第一个问题没有解决方案,因为 Map 或 Dictionary 不维护顺序。
第二个问题是因为您将 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)
我在 Swift 中创建了一个对象数组,它具有以下结构:
var myCart:[FoodItem] = []
变量转储:
▿ 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 个问题...
- 出于某种原因,"car" 被放置在第二个位置,即使我在 JSON 声明期间将它放在最后。
第二个问题是我不知道如何将我的对象数组放在 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)
}
它不起作用的原因是这不会在购物车中创建数组,它只会覆盖 JSON
谢谢。
第一个问题没有解决方案,因为 Map 或 Dictionary 不维护顺序。
第二个问题是因为您将 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)