5.使用JSONSerialization,JSON数据与对象相互转化

对JSON数据与本地对象相互转化进行封装

import Foundation

class JSONSerialization: NSObject {
    static func toJSONWithObject(data:NSDictionary)->NSData?{
        var result:NSData?
        if NSJSONSerialization.isValidJSONObject(data) {
            do{
                result = try NSJSONSerialization.dataWithJSONObject(data, options: [])
            }catch {
                print("JSON化失败.")
            }
        }
        return result
    }
    static func toJSONWithArry(arr:NSArray)->NSData?{
        var result:NSData?
        if NSJSONSerialization.isValidJSONObject(arr) {
            do{
                result = try NSJSONSerialization.dataWithJSONObject(arr, options:[])
            }catch {
                print("JSON化失败.")
            }
        }
        return result
    }
    
    static func toJSONWith(data:DataAndType)->NSData?{
        var result:NSData?
        switch data.type{
        case .Array:
            result = toJSONWithArry(data.arr!)
        case .Dictionary:
            result = toJSONWithObject(data.object!)
        }
        return result
    }
    
    static func toObjectWithJSON(json:NSData)->NSDictionary?{
        var object:NSDictionary?
        do{
            try object = NSJSONSerialization.JSONObjectWithData(json, options: NSJSONReadingOptions.AllowFragments) as? NSDictionary
        }catch{
            print("JSON转Object失败.")
        }
        return object
    }
    static func toArrayWithJSON(json:NSData)->NSArray?{
        var arr:NSArray?
        do{
            try arr = NSJSONSerialization.JSONObjectWithData(json, options: NSJSONReadingOptions.AllowFragments) as? NSArray
        }catch{
            print("JSON转Object失败.")
        }
        return arr
    }
    static func toDataWithJSON(json:NSData)->DataAndType?{
        if let object = toObjectWithJSON(json){
            return DataAndType(object: object)
        }
        if let arr = toArrayWithJSON(json){
            return DataAndType(arr: arr)
        }
        return nil
    }
}
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容