Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/json/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios 使用swiftlyJSON解析Swift中具有未知根元素的JSON_Ios_Json_Swift - Fatal编程技术网

Ios 使用swiftlyJSON解析Swift中具有未知根元素的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

我使用Swift在iOS中工作。我使用的服务返回以下JSON(当节点开始重复时被切断):

请注意,根节点是由服务动态创建的——我无法知道它将是什么,因为用户可以选择从50个站点中的一个出发,并且时间基于服务器上的时间,这可能与用户时钟上的时间不一致

我想从北向数组中提取数据,然后从JSON下面的南向数组中提取数据

我正在获取从服务返回的数据,但无法正确解析。我无法通过根节点(动态节点)访问内部结构

以下是我正在尝试的:

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