【问题标题】:How to parse JSON object without JSONdecoder in iOS? [duplicate]如何在 iOS 中解析没有 JSONdecoder 的 JSON 对象? [复制]
【发布时间】:2021-08-27 06:49:43
【问题描述】:

好的,几天前我收到了这个奇怪的 JSON 格式,我不知道是否可以解码,但我想知道是否可以。

{
"status" : true,
"orderHistory": {
    "5" : {
        "productId" : 0,
        "productName" : "Anchovy",
        "quantity" : 1,
        "price" : "199"
        "variation": ""
    },
    
    "17" : {
        "productId" : 0,
        "productName" : "Anchovy",
        "quantity" : 1,
        "price" : "199"
        "variation": ""
    },
    
    "98" : {
        "productId" : 0,
        "productName" : "Anchovy",
        "quantity" : 1,
        "price" : "199"
        "variation": ""
    }
}

}

Order History 应该是一个数组,但在这种情况下,后端发送这些带有随机字符串键的对象,我们无法创建可解码模型的原因是键是随机的,

关于如何解码这些数据并将其用于我们的 iOS 应用程序的任何想法?

【问题讨论】:

  • 没有必要把婴儿和洗澡水一起扔出去。您仍然可以在此处使用JSONDecoder
  • JSONSerialization,但您仍然可以在某些时候将JSONDecoder 与属性一起使用:let orderHistory: [String: [OrderHistoryDecodableStruct]]
  • 您的 JSON 数据集无效,因为价格键后面没有逗号。

标签: json swift


【解决方案1】:

最好继续使用 JSON 解码器。

匹配 JSON 的根模型如下所示:

struct Body: Decodable {
    let status: Bool
    let orderHistory: [String: Order]
}

Order 模型会很简单。

【讨论】:

    猜你喜欢
    • 2012-08-16
    • 2016-01-28
    • 1970-01-01
    • 2013-07-16
    • 2020-05-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多