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