读取带有多个字典和数组的JSON到Swift中

时间:2016-05-09 12:31:40

标签: json swift dictionary

我正在尝试从下面的JSON中分离出beforerangeafter,并将它们存储在不同的数组/词典中。但是我只能解析range。任何人都可以帮忙举个例子吗?

{
    "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
        }
    ]
}

1 个答案:

答案 0 :(得分:1)

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

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

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

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)
        }
    }
}