【发布时间】:2017-04-30 04:34:14
【问题描述】:
当后端发现错误时,我的客户端返回了一个疯狂的 JSON。它包括许多“错误”键以及不确定数量的数组和 JSON 的嵌套部分。这是一个例子:
{
"errors": {
"children": {
"name": {
"errors": [
"Error name"
]
},
"lastName": {
"errors": [
"Error lastName"
]
},
"email": {
"errors": [
"Error mail"
]
},
"gender": {},
"birthday": {
"children": {
"year": {},
"month": {
"errors": [
"Error month"
]
},
"day": {}
}
}
}
}
}
由于他声称无法重写响应以返回更常规的错误处理,我想遍历 JSON 并获取包含每个错误字符串的数组。鉴于除了错误没有其他价值,我认为获得所有价值也可以解决问题。 JSON结构可能会根据错误位置和服务而改变。
我目前正在使用 SwiftyJSON 来解析响应(以防它可能有任何帮助)
【问题讨论】:
-
在不知道键值的情况下如何查找数据,json根值可能是字典或数组,可以用这个来检查
-
是的 Shobhakar,我知道这一点,我做了一个递归函数,遍历了 json 树,但我没有找到返回最终结果的方法。 iWheelBuy 和 Benzi 发布了解决该问题的两种有效方法。
标签: json swift nsdictionary flatten