在SWIFT中解析无键JSON

在SWIFT中解析无键JSON,swift,Swift,使用此代码获取和分析: func getJSON(urlToRequest: String) -> NSData { return NSData(contentsOfURL: NSURL(string: urlToRequest)) } func parseJSON(inputData: NSData) -> NSDictionary { var error: NSError? var boardsDictionary: NSDictionary = NSJS

使用此代码获取和分析:

func getJSON(urlToRequest: String) -> NSData
{
    return NSData(contentsOfURL: NSURL(string: urlToRequest))
}
func parseJSON(inputData: NSData) -> NSDictionary
{
    var error: NSError?
    var boardsDictionary: NSDictionary = NSJSONSerialization.JSONObjectWithData(inputData, options: NSJSONReadingOptions.MutableContainers, error: &error) as NSDictionary
    return boardsDictionary
}
    var parsedJSON = parseJSON(getJSON("url"))
printlnparsedJSON结果:

printlnparsedJSON[result]结果:

printlnparsedJSONlS[结果]![MCL]为零


如何从每个集合中提取MCL值?我可以通过索引访问值吗?

看起来parsedJSONlS[result]将为您提供一系列字典。您可以执行以下操作:

var array = parsedJSONlS["result"]
array[0]["MCL"]
// or
var dictionary = array[0] as Dictionary
println(dictionary["MCL"])

当然,这只是为了让您了解结构,您必须为该数组创建一个循环,获取所有字典并提取它们的值。

您应该考虑这里的选项:从字典中检索值可能返回零。因此,从字典中取出每个MCL值,并将它们与索引一起放在元组数组中:

    func retrieveMCL(index : Int, value : Dictionary<String, String>) -> (Int,String)?
    {
        switch value["MCL"] {
        case .Some(let mclValue): return (index, mclValue)
        default: return nil
        }
    }

    // This mimics your results from JSON
    let results = ["result":[["MCL":"Eee"],["MCL":"Ddd"]]]
    var mclArray : Array<(Int,String)> = []

    if let resultsArray = results["result"]
    {
        for (index,value) in enumerate(resultsArray){
            if let mclTupple = retrieveMCL(index, value) {
                mclArray += mclTupple
            }
        }
    }

转到json.org学习json语法-只需5-10分钟。结果是一个数组。
var array = parsedJSONlS["result"]
array[0]["MCL"]
// or
var dictionary = array[0] as Dictionary
println(dictionary["MCL"])
    func retrieveMCL(index : Int, value : Dictionary<String, String>) -> (Int,String)?
    {
        switch value["MCL"] {
        case .Some(let mclValue): return (index, mclValue)
        default: return nil
        }
    }

    // This mimics your results from JSON
    let results = ["result":[["MCL":"Eee"],["MCL":"Ddd"]]]
    var mclArray : Array<(Int,String)> = []

    if let resultsArray = results["result"]
    {
        for (index,value) in enumerate(resultsArray){
            if let mclTupple = retrieveMCL(index, value) {
                mclArray += mclTupple
            }
        }
    }