将包含多个字典和数组的JSON读入Swift

将包含多个字典和数组的JSON读入Swift,json,swift,dictionary,Json,Swift,Dictionary,我试图从下面的JSON中分离出之前、范围和之后,并将它们存储在不同的数组/字典中。但是,我只能解析范围。有人能举个例子吗 { "before": [ { "segment": 1, "end": 0, "size": 0 }, { "segment": 2, "end": 0.01, "size":

我试图从下面的JSON中分离出
之前
范围
之后
,并将它们存储在不同的数组/字典中。但是,我只能解析
范围
。有人能举个例子吗

{
    "before": [
        {
            "segment": 1,
            "end": 0,
            "size": 0
        },
        {
            "segment": 2,
            "end": 0.01,
            "size": 0.1
        }
    ],
    "range": [
        100,
        101,
        102,
        103,
        104,
        105,
        106,
        107,
        108,
        109,
        110
    ],
    "after": [
        {
            "segment": 1,
            "end": 0,
            "size": 0
        },
        {
            "segment": 2,
            "end": 0.5,
            "size": 0.1
        },
        {
            "segment": 3,
            "end": 0.8,
            "size": 0.3
        },
        {
            "segment": 4,
            "end": 1,
            "size": 0.5
        }
    ]
}

您所要做的就是将内容强制转换为正确的类型

JSON对象是一个字典;“before”是一个字典数组,“after”类似,“range”是一个int数组

知道了这一点,很容易解码:

if let json = try? NSJSONSerialization.JSONObjectWithData(data, options: []) {
    if let dict = json as? [String:AnyObject] {
        if let before = dict["before"] as? [[String:AnyObject]] {
            print(before)
        }
        if let after = dict["after"] as? [[String:AnyObject]] {
            print(after)
        }
        if let range = dict["range"] as? [Int] {
            print(range)
        }
    }
}

您所要做的就是将内容强制转换为正确的类型

JSON对象是一个字典;“before”是一个字典数组,“after”类似,“range”是一个int数组

知道了这一点,很容易解码:

if let json = try? NSJSONSerialization.JSONObjectWithData(data, options: []) {
    if let dict = json as? [String:AnyObject] {
        if let before = dict["before"] as? [[String:AnyObject]] {
            print(before)
        }
        if let after = dict["after"] as? [[String:AnyObject]] {
            print(after)
        }
        if let range = dict["range"] as? [Int] {
            print(range)
        }
    }
}