gpt4 book ai didi

json - 在 Swift 中解码具有多个组值的 JSON

转载 作者:搜寻专家 更新时间:2023-11-01 06:58:57 24 4
gpt4 key购买 nike

我通过 URLSession.shared.dataTask(with:url!, completionHandler: {(data, response, error) 从我的 web 服务器从 Swift 获取值,我得到的输出类似于:

(
{
ANO = 2017;
CLAVESSAMEDICAMENTO = "010.000.0101.00";
CLUES = BSSSA000035;
CONSUMOPROMEDIOMENSUAL = 87;
DESCRIPCIONMEDICAMENTO = "\U00c1CIDO ACETILSALIC\U00cdLICO TABLETAS";
MES = 01;
MUNICIPIO = "Comond\U00fa";
NOMBREUNIDAD = "C.S.U. CIUDAD CONSTITUCION";
PRESENTACION = "ENVASE CON 20 TABLETAS";
RECETADOMENSUAL = 280;
SURTIDOMENSUAL = 252;
id = 1867;
},
{
ANO = 2017;
CLAVESSAMEDICAMENTO = "010.000.0103.00";
CLUES = BSSSA000035;
CONSUMOPROMEDIOMENSUAL = 70;
DESCRIPCIONMEDICAMENTO = "ACIDO ACETILSALICILICO TABLETA SOLUBLE";
MES = 01;
MUNICIPIO = "Comond\U00fa";
NOMBREUNIDAD = "C.S.U. CIUDAD CONSTITUCION";
PRESENTACION = "ENVASE CON 20 TABLETAS";
RECETADOMENSUAL = 240;
SURTIDOMENSUAL = 216;
id = 1879;
},
{
ANO = 2017;
CLAVESSAMEDICAMENTO = "010.000.0104.00";
CLUES = BSSSA000035;
CONSUMOPROMEDIOMENSUAL = 42;
DESCRIPCIONMEDICAMENTO = "PARACETAMOL TABLETA";
MES = 01;
MUNICIPIO = "Comond\U00fa";
NOMBREUNIDAD = "C.S.U. CIUDAD CONSTITUCION";
PRESENTACION = "ENVASE CON 10 TABLETAS";
RECETADOMENSUAL = 743;
SURTIDOMENSUAL = 669;
id = 1891;
},
{...

我正在尝试在一个类中对其进行解码,以便我可以访问它的值。我的类(class)是:

struct Informacion: Codable {
let id: String
let clues: String
let nombreunidad: String
let municipio: String
let clavesmedicamentos: String
let descripcionmedicamentos: String
let presentacion: String
let consumopromediomensual: Int
let recetadomensual: Int
let surtidomensual: Int
let mes: String
let ano: String
enum CodingKeys : String, CodingKey {
case id = "id"
case clues = "CLUES"
case nombreunidad = "NOMBREUNIDAD"
case municipio = "MUNICIPIO"
case clavesmedicamentos = "CLAVESSAMEDICAMENTO"
case descripcionmedicamentos = "DESCRIPCIONMEDICAMENTO"
case presentacion = "PRESENTACION"
case consumopromediomensual = "CONSUMOPROMEDIOMENSUAL"
case recetadomensual = "RECETADOMENSUAL"
case surtidomensual = "SURTIDOMENSUAL"
case mes = "MES"
case ano = "ANO"
}
}

但我不知道如何解码 JSON 值以适合我的类(class)。我试图从另一个类创建另一个具有单个值的类作为数组,例如:

struct Unidades_Informacion: Codable {
let valores: Array<Informacion>
}

但是我得到:

Thread 6: Fatal error: 'try!' expression unexpectedly raised an error: Swift.DecodingError.typeMismatch(Swift.Dictionary, Swift.DecodingError.Context(codingPath: [], debugDescription: "Expected to decode Dictionary but found an array instead.", underlyingError: nil))

最佳答案

很明显是数组,你可以试试

do {
let arr = try JSONDecoder().decode([Informacion].self,data)
}
catch {
print(error)
}

去掉struct Unidades_Informacion 它和这个json没有关系,这是一个数组

[{},{},{}]    // (2) but you have this

虽然这是一本字典

{"valores": [{},{},{}]}   /// (1) you attempt with this 

关于json - 在 Swift 中解码具有多个组值的 JSON,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51734790/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com