如何从[String: AnyObject]
生成JSON
?
let jsonString = Mapper().toJSONString(article!)
// {\"price\":\"220.00\",\"name\":\"Capricciosa\",\"active\":true,\"calculable\":true,\"id\":76,\"article_type\":2,\"ingredients\":[],\"critical_qty\":\"0.00\",\"barcode\":\"\",\"tax\":\"1\"}
let json = SwiftyJSON.JSON(jsonString!)
// i need here to get [String: AnyObject]
需要Alamofire
参数..
答案 0 :(得分:2)
SwiftyJSON实际上只是Foundation中NSJSONSerialization
的一个包装器,它只是让访问值并在结构中挖掘更方便。然而,这不是你真正想要做的,你只需要func jsonDict(json: String) -> [String : AnyObject]? {
if let
data = json.dataUsingEncoding(NSUTF8StringEncoding),
object = try? NSJSONSerialization.JSONObjectWithData(data, options: []),
dict = object as? [String : AnyObject] {
return dict
} else {
return nil
}
}
返回的字典。如果您使用SwiftyJSON,那么您只需要走很长的路。
如果没有SwiftyJSON,这个功能可以满足您的需求:
func jsonDict(json: String) -> [String : AnyObject]? {
return json.dataUsingEncoding(NSUTF8StringEncoding)
.flatMap{ try? NSJSONSerialization.JSONObjectWithData($0, options: []) }
.flatMap{ $0 as? [String : AnyObject] }
}
或者如果您更喜欢更实用的方法:
for(int i=0; i<array1.length; i++){ // move along array 1
if(array1[i]>array2[j]){
//do something
}
for(int j =0; j<array2.length; j++){ // moves along array 2
}
}
答案 1 :(得分:2)
您可以直接从SwiftyJSON dictionaryObject
json
let dict: [String: AnyObject]
if jDict = json.dictionaryObject {
dict = jDict
} else {
dict = [String: AnyObject]()
}
答案 2 :(得分:1)
这样做:
let jsonString = "{\"price\":\"220.00\",\"name\":\"Capricciosa\",\"active\":true,\"calculable\":true,\"id\":76,\"article_type\":2,\"ingredients\":[],\"critical_qty\":\"0.00\",\"barcode\":\"\",\"tax\":\"1\"}"
var dict = [String: AnyObject]()
if let dataFromString = jsonString.dataUsingEncoding(NSUTF8StringEncoding, allowLossyConversion: false) {
let json = JSON(data: dataFromString)
for (key, value) : (String, JSON) in json {
dict[key] = value.object
}
}