如何在 iOS 中解析没有 JSONdecoder 的 JSON 对象? [复制]
Posted
技术标签:
【中文标题】如何在 iOS 中解析没有 JSONdecoder 的 JSON 对象? [复制]【英文标题】:How to parse JSON object without JSONdecoder in iOS? [duplicate] 【发布时间】: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 数据集无效,因为价格键后面没有逗号。
【参考方案1】:
最好继续使用 JSON 解码器。
匹配 JSON 的根模型如下所示:
struct Body: Decodable
let status: Bool
let orderHistory: [String: Order]
Order
模型会很简单。
【讨论】:
以上是关于如何在 iOS 中解析没有 JSONdecoder 的 JSON 对象? [复制]的主要内容,如果未能解决你的问题,请参考以下文章
告诉 numberOfRowsInSection 在使用 MVVM 架构在闭包中使用 JSONDecoder 解析 JSON 后它需要多少行
为啥 JsonDecoder 在尝试解析邮递员网址但处理其他网址时出现错误?
如何使用 jsonDecoder 处理来自 JSON 响应的动态键?