NSJSONSerialization上Swiftdynamic投射失败

我有一个JSON数据 ,如下所示:

[ { "Name" : "Ernst Handel", "City" : "Graz", "Country" : "Austria" }, { "Name" : "Wolski Zajazd", "City" : "Warszawa", "Country" : "Poland" } ] 

我将它转换为NSDictionary使用:

 var jsonResult: NSDictionary = NSJSONSerialization.JSONObjectWithData( data, options: NSJSONReadingOptions.MutableContainers, error: nil) as NSDictionary 

我通常使用这个。 适用于数字和关联types的JSON。 它也适用于你。 我试过了。

 func JSONParseArray(jsonString: String) -> [AnyObject] { if let data = jsonString.dataUsingEncoding(NSUTF8StringEncoding) { if let array = NSJSONSerialization.JSONObjectWithData(data, options: NSJSONReadingOptions(0), error: nil) as? [AnyObject] { return array } } return [AnyObject]() } 

你的JSON包含NSArraytypes的根对象,而不是NSDictionary

 var jsonResult: NSArray = NSJSONSerialization.JSONObjectWithData( data, options: NSJSONReadingOptions.MutableContainers, error: nil) as NSArray 

请参阅此..它可以帮助你

这是我的JSON

我已经parsing过了

它看起来像相同的结果..

 var err: NSError var jsonResult: NSDictionary = NSJSONSerialization.JSONObjectWithData(data, options: NSJSONReadingOptions.MutableContainers, error: nil) as NSDictionary println(jsonResult) self.productsArray = jsonResult.valueForKey("products") as NSMutableArray println( self.productsArray.count); var toInt: Int = self.productsArray.count for value in 1...toInt-1 { self.valuesArray.addObject(productsArray.objectAtIndex(value).valueForKey("item_name")!) } 

self.valuesArray,self.productsArray是可变数组