繁体   English   中英

在 Swift 中将编码字符串转换为 JSON 数组

[英]Convert Encoded String To JSON Array in Swift

我有一个编码字符串

("[{"carMake":"Mercedes","phone":"03001234567","insurancePolicyNo":"0123456","email":"a@g.com","full_name":"Steven Fin"," registrationNo":"02134","insuranceProvider":"Michael","carModel":"Benz"}, {"carMake":"Audi","phone":"03007654321","insurancePolicyNo":"654321"," email":"b@g.com","full_name":"Flemming Smith","re​​gistrationNo":"4325","insuranceProvider":"Buttler","carModel":"A3"}]")

我想将其转换为 JSON 数组,如下所示:

 [
    {
      "full_name": "Steven Finn",
      "insuranceProvider": "Michael",
      "insurancePolicyNo": "0123456",
      "registrationNo": "02134",
      "carMake": "Mercedes",
      "carModel": "Benz",
      "email": "a@g.com",
      "phone": "03001234567"
    },
    {
      "full_name": "Flemming Smith",
      "insuranceProvider": "Buttler",
      "insurancePolicyNo": "654321",
      "registrationNo": "4325",
      "carMake": "Audi",
      "carModel": "A3",
      "email": "b@g.com",
      "phone": "03007654321"
    }
  ]

经过一番搜索,我所做的是将其转换为字典,结果是:

[[“registrationNo”:02134,“carModel”:奔驰,“电话”:03001234567,“电子邮件”:a@g.com,“insuranceProvider”:迈克尔,“insurancePolicyNo”:0123456,“carMake”:梅赛德斯,“full_name ": Steven Finn], ["carModel": A3, "insuranceProvider": Buttler, "carMake": Audi, "insurancePolicyNo": 654321, "full_name": Flemming Smith, "registrationNo": 4325, "phone": 03007654321, “电子邮件”:b@g.com]]

这不是预期的结果。

有谁知道如何实现我想要的阵列?

你所谓的Encoded String已经是 json 数据。 试试这个把它解码成一个Car模型:

struct Car: Codable {
    let carMake, phone, insurancePolicyNo, email: String
    let full_name, registrationNo, insuranceProvider, carModel: String
}

struct ContentView: View {
    var body: some View {
        Text("testing")
            .onAppear {
                let str = """
                 [{"carMake":"Mercedes","phone":"03001234567","insurancePolicyNo":"0123456","email":"a@g.com","full_name":"Steven Fin","registrationNo":"02134","insuranceProvider":"Michael","carModel":"Benz"}, {"carMake":"Audi","phone":"03007654321","insurancePolicyNo":"654321","email":"b@g.com","full_name":"Flemming Smith","registrationNo":"4325","insuranceProvider":"Buttler","carModel":"A3"}]
                 """
                
                do {
                    let data = str.data(using: .utf8)!
                    let response = try JSONDecoder().decode([Car].self, from: data)
                    print("\n---> response \(response)")
                } catch {
                    print(" error \(error)")
                }

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM