【发布时间】:2020-04-30 03:16:29
【问题描述】:
我一直在尝试从模型创建 json。最初创建 aadhar 模型并将 aadhar 数据从 api 响应存储到模型。
并创建了另一个 aadhar model2,将 aadhar 模型值传递给 aadhar model2。但是 aadhar 模型 1 和 aadhar 模型 2 响应参数不同。
这是我的 json 响应值。
{
"apiVersion": "1.3.1",
"id": "387a65ba6e51cd1d18bef58cc60c47b751830532ea10465106a54d600d5042f9",
"data": {
"meta": {
"confidence_ocr_mean": 0.95869,
"confidence_ocr_var": 0.00912,
"confidence_ocr_skew": -4.06817,
"confidence_ocr_kurt": 17.71878,
"model_confidence": 1.0,
"image_resolution": "7427 * 2623",
"checksum_status": true
},
"info": {
"name": [
"V",
"Parameswaran"
],
"date_of_birth": {
"date": 28,
"month": 12,
"year": 1989
},
"aadhaar_id": "4682********",
"gender": "male",
"address": [
"Unique Identification Authority of India C/O",
"316 / 87",
"*******",
"*******",
"***********",
"*******",
"*****"
],
"state": null,
"pincode": null
}
}
}
AAdhar 模型 1 类:
import Foundation
public struct aadharModels: Codable {
let id: String
let info: infoAadharClass
enum CodingKeys: String, CodingKey {
// case links = "_links"
case info = "info"
case id
}
}
struct infoAadharClass: Codable {
let aadhaar_id, gender: String
let name: [String]
let dateofbirth: DobClass
let address: [String]
enum CodingKeys: String, CodingKey {
case aadhaar_id, gender
case name
case address
case dateofbirth = "date_of_birth"
}
}
struct DobClass: Codable {
let date, month, year: String
enum CodingKeys: String, CodingKey {
case date, month, year
}
}
这是我将 aadhar 模型 1 传递给 aadhar 模型 2 的代码:
let aadharID = data.info.aadhaar_id
let aadharB_Day = data.info.dateofbirth.date
let aadharB_month = data.info.dateofbirth.month
let aadharB_year = data.info.dateofbirth.year
let aadharGender = data.info.gender
let aadharName = data.info.name
let aadharAddress = data.info.address
print("aadhar address", aadharAddress)
let aadharDate = aadharB_Day+"/"+aadharB_month+"/"+aadharB_year
var aadhar_c = AadharModelConverted(aadharNumber: aadharID, dob: aadharDate, gender: aadharGender, name: aadharAddress, address: aadharAddress)
//convert to json
let jsonData = try! JSONEncoder().encode(aadhar_c)
let jsonString = String(data: jsonData, encoding: .utf8)!
print("json object using pan model",jsonString)
这是 aadhar 模型 2:
import Foundation
public struct AadharModelConverted: Codable {
var aadharNumber: String?
var dob: String?
var gender: String?
var name: [String]?
var address: addressSubclass_c
enum CodingKeys: String, CodingKey {
case aadharNumber, dob, gender, name
case address = "address"
}
}
struct addressSubclass_c: Codable {
var values: [String]
}
我想要得到的 JSON 输出:
{
"aadharNumber": "60**********",
"dob": "0/0/1994",
"gender": "male",
"name": "VipinAgrawal",
"address": {
"values": [
"S/O Mukesh Agrawal",
"ho",
"no - 67",
"******",
"******",
"******"
]
}
}
任何帮助都非常感谢...
【问题讨论】:
标签: ios arrays json swift nested