sách gpt4 ai đã đi

arrays - 如何在json数组结构中添加附加字段

In lại 作者:行者123 更新时间:2023-11-30 11:32:46 26 4
mua khóa gpt4 Nike

我需要添加额外的 bool 字段来制作可选择的品牌和型号表。原始 json 结构是:

    {
"brands": [
{
"id": "19",
"name": "Audi",
"sort": "1",
"num": 1,
"models": [
{
"id": "190",
"name": "TTS",
"num": 1
},
{
"id": "189",
"name": "TT",
"num": 2
},
{
"id": "188",
"name": "V8",
"num": 3
},
{
"id": "187",
"name": "SQ5",
"num": 4
}
],
......

我需要在品牌和型号结构中添加 isExpished: Bool = false。所以数组应该是这样的:

{
"brands": [
{
---> "isExpanded": false,
"id": "19",
"name": "Audi",
"sort": "1",
"num": 1,
"models": [
{
---> "isExpanded": false,
"id": "190",
"name": "TTS",
"num": 1
},

我的模型:

struct auto_data: Decodable {
var brands: [brands]
var gearbox: [gearbox]
var fuel: [fuel]
var version: String
}

struct brands: Decodable {
var id: String
var name: String
var sort: String
var num: Int
var models: [brand_models]
}

struct brand_models: Decodable {
var id: String
var name: String
var num: Int
}

获取 json 我使用:

func get_data (order_type: String, localization: String, version: String, completion: @escaping ([brands]?) -> Void) {
let encodedBodyParams = "order_type=\(order_type)&localization=\(localization)&version=\(version)"
let url = URL(string: "http://skat.az/forapi/api/get_data.php")
Alamofire.request(url!, method: .post, parameters: [:], encoding: encodedBodyParams, headers: [:]).responseJSON { (response) in
if response.result.isSuccess {
LÀM {
let result = response.data
let data = try JSONDecoder().decode(auto_data.self, from: result!)

completion(data.brands)
} catch {
print("Error: \(error)")
}
print("models ОК!")
} khác {
print("error response: \(String(describing: response.error))")
completion(nil, nil, nil)
}
}
}

我不想遍历数组的所有元素并将它们放入另一个具有正确结构的元素中。还有其他方法可以改变数组的结构吗?

1 Câu trả lời

首先请遵守结构体和类名以大写字母开头且驼峰命名的命名约定。单数形式的进一步名称结构。就语言语义而言,您正在创建一个 BrandModel,而不是一个 BrandModels

如果您需要在符合 Decodable 的结构中添加自定义成员,则必须指定 CodingKeys

在大多数情况下,将解码后的结构成员声明为常量就足够了 (cho phép)

struct Brand: Decodable {

private enum CodingKeys : String, CodingKey {
case id, name, sort, num, models
}

var isExpanded = false
let id: String
let name: String
let sort: String
let num: Int
let models: [BrandModel]
}

struct BrandModel: Decodable {

private enum CodingKeys : String, CodingKey {
case id, name, num
}

var isExpanded = false
let id: String
let name: String
let num: Int
}

关于arrays - 如何在json数组结构中添加附加字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50084804/

26 4 0
Bài viết được đề xuất: ios - UICollectionView 比 NavigationController 大
Bài viết được đề xuất: ios - MVVM 与 RxSwift
Bài viết được đề xuất: arrays - 填充 UITableViewController
Bài viết được đề xuất: ios - 在对象数组上循环并显示项目而不重复它们
行者123
Hồ sơ cá nhân

Tôi là một lập trình viên xuất sắc, rất giỏi!

Nhận phiếu giảm giá Didi Taxi miễn phí
Mã giảm giá Didi Taxi
Giấy chứng nhận ICP Bắc Kinh số 000000
Hợp tác quảng cáo: 1813099741@qq.com 6ren.com