迭代 JSON,快速
Posted
技术标签:
【中文标题】迭代 JSON,快速【英文标题】:iterate JSON, swift 【发布时间】:2016-07-22 14:10:45 【问题描述】:我正在快速开发。 当我在 Postman/浏览器和移动模拟器上测试它时,我从 Web 服务器得到的响应是不同的。
邮递员/浏览器响应:
items: [
itemId: 500,
name: "ABC"
,
itemId: 500,
name: "ABC"
]
iOS 响应:
items: (
itemId: 500,
name: "ABC"
,
itemId: 500,
name: "ABC"
)
我想知道如何遍历数组,但由于结果不是 ios 上的 array
,我不确定我应该如何去做。此外,我在array
中检索到大约 25-30 个项目的结果。我也有一组变量,它们在数组之后的响应中提供。
【问题讨论】:
为什么说它不是数组呢?这是一个字典数组。不要将 Swift 语法与 JSON 语法或对象的打印方式混为一谈,这只是一种表示,而不是对象本身... 【参考方案1】:当您打印数组时,您在ios
中的响应没有问题,它将使用()
括号而不是[]
括号打印,并且字典将使用 括号打印。
正如你所说的 let items : [NSDictionary]!
你的 items 数组包含 dictionary
然后你可以像这样迭代它
for item in items
print(item["itemId"])
print(item["name"])
【讨论】:
let items : [NSDictionary]! var items : [NSDictionary]! httpresponsefunc() self.items = response["items"] as! [NSDictionary]
这是你说的吗?
@sau123 这将像(, ...)
一样打印
是的,我明白了,它会像这样打印。我想知道的是,我们应该如何迭代它?【参考方案2】:
正如其他人所说,您在 iOS 中的反应很好。
你可以简单地迭代它:
for item in items
// do what you want with each item
它在游乐场中运行良好:
let items = [["itemId": 500, "name" : "ABC"], [ "itemId": 500, "name": "ABC"]] as NSArray
for item in items
print(item as! NSDictionary) // prints each dictionary as expected
【讨论】:
【参考方案3】:你有一个字典数组。所以,你可以像这样迭代-
for itemDict in items
let itemId = itemDict["itemId"]
println("Item ID: \(itemId)")
let name = itemDict["name"]
println("Item name: \(name)")
【讨论】:
鉴于println
已被删除,这将不起作用。此外,这将打印“项目 ID:可选(500)”。以上是关于迭代 JSON,快速的主要内容,如果未能解决你的问题,请参考以下文章