- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在尝试从此 json 文件“321”、日期“654”和“@attributes”中“数字”的值“123”获取出勤值。我已经设法过滤了级别,但我想知道是否有更有效的方法来访问大于三级别的值。或者csharp中有没有类似linq的库。
我可以直接跳转到“GameData”并获取所有 GameData 并存储到一个对象列表中吗?
或者只是一条链例如:
json["level1"].["level2"].["level3"]
JSON:
{
"Feed":{
"Doc":{
"Comp": {
},
"GameData": {
"GameInfo": {
"Attendance": 321,
"Date": 654,
"ID": 00
}
},
"GameData": {
"GameInfo": {
"Attendance": 321,
"Date": 654
"ID": 01
}
}
},
"@attributes": {
"Number": 123
}
}
}
代码:
let json = try JSONSerialization.jsonObject(with: data!, options: .mutableContainers) as! [String: AnyObject]
if let articlesFromJson = json["Feed"] as? [String: AnyObject]{
print("level1")
if let aFromJson = articlesFromJson["Doc"] as? [String: AnyObject]{
print("level2")
if let aFromJson = articlesFromJson["GameData"] as? [String: AnyObject]{
print(aFromJson)
}
}
}
最佳答案
我很喜欢SwiftyJson这让你可以:
import SwiftyJSON
let json = JSON(data: data)
let game = json["Feed"]["Doc"]["GameData"] // this is of type JSON
let attendance = game["GameInfo"]["Attendance"].string ...
let number = json["Feed"]["@attributes"]["Number"].string // this is of type String?
let number = json["Feed"]["@attributes"]["Number"].stringValue // this is of type String, and will crash if the value is missing
=== 编辑:关于重复标签的信息 ===
JSON 本身不会阻止您这样做:https://stackoverflow.com/a/21833017/2054629但您会发现大多数图书馆将 JSON 理解为字典和数组,并且这些结构不能有重复的键。
例如,您可以在浏览器控制台中测试的 javascript:
JSON.stringify(JSON.parse('{"a": 1, "a": 2}')) === '{"a": 2}'
我相信 SwiftyJson 的行为类似。所以我建议您将 JSON 结构更改为:
{
"Feed":{
"Doc":{
"Comp": {},
"GameData": {
"GamesInfo": [
{
"Attendance": 321,
"Date": 654,
"ID": 0
},
{
"Attendance": 321,
"Date": 654
"ID": 1
}
]
},
},
"@attributes": {
"Number": 123
}
}
}
关于json - swift最新版如何获取三层及以上的json数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41386457/
爬虫之旅的开始 曾经有一段时间,我迷上了探索互联网的世界,无数个夜晚都被网页的迷雾所吸引。当时,我对爬虫这个神秘而强大的技术充满了向往,渴望能够在这个数字海洋中畅游。 初识Python 然而,在踏上这
我有一个条纹表编码如下: # First Name
使用最新版本的 forge v1.4.49,当我尝试从我的 Windows comp 测试我的 IOS 应用程序时,该应用程序安装但当我打开它时崩溃。 我还使用 testFlight 进行了测试并得到
亲爱的 React 开发人员。 当您想使用新的加载器功能时,有人可以解释或展示在当前最新版本 6.4.1 中将 MSAL 与 React Router 结合使用的最佳方法吗? 基于您可以在此处阅读的新
我的任务是使用旧 java 升级旧桌面应用程序,它使用 rt.jar 和 jfxrt.jar 库。我在网上搜索了这些库(rt.jar & jfxrt.jar),但显然它在 Java 17 和 Java
我是一名优秀的程序员,十分优秀!