Ios 使用swiftlyJSON解析Swift中具有未知根元素的JSON
我使用Swift在iOS中工作。我使用的服务返回以下JSON(当节点开始重复时被切断): 请注意,根节点是由服务动态创建的——我无法知道它将是什么,因为用户可以选择从50个站点中的一个出发,并且时间基于服务器上的时间,这可能与用户时钟上的时间不一致 我想从北向数组中提取数据,然后从JSON下面的南向数组中提取数据 我正在获取从服务返回的数据,但无法正确解析。我无法通过根节点(动态节点)访问内部结构 以下是我正在尝试的:Ios 使用swiftlyJSON解析Swift中具有未知根元素的JSON,ios,json,swift,Ios,Json,Swift,我使用Swift在iOS中工作。我使用的服务返回以下JSON(当节点开始重复时被切断): 请注意,根节点是由服务动态创建的——我无法知道它将是什么,因为用户可以选择从50个站点中的一个出发,并且时间基于服务器上的时间,这可能与用户时钟上的时间不一致 我想从北向数组中提取数据,然后从JSON下面的南向数组中提取数据 我正在获取从服务返回的数据,但无法正确解析。我无法通过根节点(动态节点)访问内部结构 以下是我正在尝试的: let json = JSON(data:data) var x = 0 w
let json = JSON(data:data)
var x = 0
while x < json.count
{
let track = json[0]["Northbound"][x]["track"].string
println(track)
x++
}
let json=json(数据:数据)
变量x=0
而x
这将导致“零”。我被卡住了
我知道json[0]可能是错误的,因为该级别的json不是数组。提前感谢如果
json
是来自SwiftyJSON的json对象,但您知道它是一个具有未知键的字典,则可以通过以下方式找到此键:
let theKey = json.dictionary!.keys.first
然后访问阵列:
let theArray = json[theKey] as! [[String:AnyObject]] // array of dictionaries
然后,数组[0]将是以“Northbound”为键的字典,其中包含包含信息的字典数组
(编辑以反映特定于SwiftyJSON的正确答案。)我理解您在这里所说的。。。但是,无法识别“键”。我不认为在swiftlyJSON库中,“keys”是JSON类的一部分。也许它是作为
NSDictionary
创建的?在这种情况下,您可以将其转换为Swift字典。然后您将能够使用此键
方法。(您可以执行ALT并单击json
以了解其类型)也许我在这里做错了什么,但类型是json。弹出的声明是let-json:json。我想你正在写东西。Alt单击JSON会给我一个公共结构JSON声明。强烈推荐我使用的库,我在解析没有这种不规则的JSON时没有遇到任何问题。再次感谢你的帮助。好的,我刚刚编辑了我的答案。试试这个新方法。如果它仍然不起作用,我可以进一步测试它,但我需要访问一个URL或一个带有一点JSON的文件。成功了!我应该想到的!当你第一次提出这个建议的时候!荣誉
let theArray = json[theKey] as! [[String:AnyObject]] // array of dictionaries