SwiftyJSON.JSON到[String:AnyObject]

时间:2015-11-08 17:30:38

标签: ios swift alamofire swifty-json

如何从[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参数..

3 个答案:

答案 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
        }
    }