我如何才能得到这样的数据结构(顶部)? 干净的数据中没有模型名称,也没有可选的数据
注:我使用了这样的方法创建值
for i in 0 ..< self.dataProduct.count {
let id_sell = "\(self.dataProduct[i].seller_id ?? 0)"
let origin = self.dataProduct[i].origin ?? 0
let product = self.dataProduct[i].product ?? []
var dataItem = [DataCheckoutMitras.ProductItemCheckout]()
var itemMitra : DataCheckoutMitras?
var dataCourierSelected : CourierObject?
for x in 0 ..< product.count {
var item : DataCheckoutMitras.ProductItemCheckout?
item = DataCheckoutMitras.ProductItemCheckout(product_id: product[x].product_id ?? 0,
name: product[x].name ?? "",
price: product[x].price ?? 0,
subTotal: product[x].subTotal ?? 0,
quantity: product[x].quantity ?? 0,
weight: product[x].weight ?? 0,
origin_item: origin,
notes: product[x].notes ?? "")
dataItem.append(item!)
}
for x in 0 ..< self.id_seller.count {
if id_sell == self.id_seller[x] {
dataCourierSelected = self.dataKurir[x]
}
}
itemMitra = DataCheckoutMitras(origin: origin, select_price_courier: dataCourierSelected, items: dataItem)
mitras.append(itemMitra!)
}
你所面临的问题是因为你在打印结构的定义。你想要的是JSON,所以你需要。
实现 Codable
协议在你的两个 struct
这也适用于你的 CourierObject
struct DataCheckoutMitras: Codable {
let origin: Int?
let items: [ProductItemCheckout]?
struct ProductItemCheckout: Codable {
let product_id : Int?
let name : String?
}
}
将结构编码为JSON数据,使用 JSONEncoder
let encodedJSONData = try! JSONEncoder().encode(mitras)
将JSON转换为字符串
let jsonString = String(data: encodedJSONData, encoding: .utf8)
print(jsonString)