JSON

12.Swift JSON 和 PList

字号+ 作者:H5之家 来源:H5之家 2016-11-10 10:02 我要评论( )

12.Swift JSON 和 PList Swift JSON 和 PList 解析PList NSJSONSerialization 解析PList PList文件的Root节点只能是Array或者Dictionary类型。IOS对PList的解析是十分简洁、方便的。由于Root节点只能是Array或者Dictionary类型,所以可以直接用NSArray或者NS

12.Swift JSON 和 PList

  • Swift JSON 和 PList
  • 解析PList
  • NSJSONSerialization
  • 解析PList

    PList文件的Root节点只能是Array或者Dictionary类型。IOS对PList的解析是十分简洁、方便的。由于Root节点只能是Array或者Dictionary类型,所以可以直接用NSArray或者NSDictionary的构造方法就能完成解析。

    在NSArray的扩展构造方法中能找到一个便利构造方法
    public convenience init?(contentsOfURL url: NSURL)

    在NSDictionary的扩展构造方法中能找到一个便利构造方法
    public convenience init?(contentsOfURL url: NSURL)

    待解析的dictPList.plist

    12-1-1

    待解析的arrayPList.plist

    12-1-2

    ViewController.swift

    class ViewController: UIViewController { override func viewDidLoad() { super.viewDidLoad() // Do any additional setup after loading the view, typically from a nib. // 解析Root为Array的PList let arrayPList:NSArray = NSArray(contentsOfURL: NSURL(fileURLWithPath: NSBundle.mainBundle().pathForResource("arrayPList", ofType: "plist")!))! // 解析Root为Dictionary的PList let dictPList:NSDictionary = NSDictionary(contentsOfURL: NSURL(fileURLWithPath: NSBundle.mainBundle().pathForResource("dictPList", ofType: "plist")!))! NSLog("\(arrayPList)") NSLog("\(dictPList)") } override func didReceiveMemoryWarning() { super.didReceiveMemoryWarning() // Dispose of any resources that can be recreated. } }

    如果要生成PList文件的话,同样的办法,将NSArray或者NSDictionary传入NSData的构造方法中,最后调用NSData的writeToFile(path: String, atomically useAuxiliaryFile: Bool) -> Bool。

    NSJSONSerialization

    IOS提供的NSJSONSerialization,可用于将普通数据转换为JSON格式的NSData、解析JSON文件。当数据通过NSJSONSerialization转换为JSON格式的NSData时,NSData又自带了writeToFile(path: String, atomically useAuxiliaryFile: Bool) -> Bool将自身保存为文件;解析JSON的话,需要NSJSONSerialization的JSONObjectWithData(data: NSData, options opt: NSJSONReadingOptions) throws -> AnyObject方法,将.json文件转换为AnyObject类型,再通过AnyObject的objectForKey(aKey: AnyObject) -> AnyObject?去获取其中的内容。

    解析JSON
    NSJSONSerialization.JSONObjectWithData(data: NSData, options opt: NSJSONReadingOptions) throws -> AnyObject

    生成JSON格式的NSData
    NSJSONSerialization.JSONObjectWithData(data: NSData, options opt: NSJSONReadingOptions) throws -> AnyObject

    mjson.json

    {"name":"CaMnter","sign":"Save you from anything"}

    ViewController.swift

    class ViewController: UIViewController { override func viewDidLoad() { super.viewDidLoad() // Do any additional setup after loading the view, typically from a nib. self.parseJSON() self.exportJSON() } // 解析JSON文件,生成JSONObject func parseJSON(){ do { // JSONObjectWithData解析JSON文件 let json:AnyObject? = try NSJSONSerialization.JSONObjectWithData(NSData(contentsOfURL: NSURL(fileURLWithPath: NSBundle.mainBundle().pathForResource("mjson", ofType: "json")!))!, options: NSJSONReadingOptions.AllowFragments) if let name: AnyObject = json?.objectForKey("name"){ NSLog("\(name)") } if let sign: AnyObject = json?.objectForKey("sign"){ NSLog("\(sign)") } }catch let error as NSError { NSLog("\(error.localizedDescription)") } } // NSData生成JSONObject func exportJSON(){ let dict = ["name":"CaMnter","sign":"Save you from anything"] do{ // dataWithJSONObject生成JSON格式的NSData let jsonData:NSData! = try NSJSONSerialization.dataWithJSONObject(dict, options: NSJSONWritingOptions.PrettyPrinted) let jsonString:NSString = NSString(data: jsonData, encoding: NSUTF8StringEncoding)! NSLog("\(jsonString)") }catch let error as NSError { NSLog("\(error.localizedDescription)") } } override func didReceiveMemoryWarning() { super.didReceiveMemoryWarning() // Dispose of any resources that can be recreated. } } $(function () { $('pre.prettyprint code').each(function () { var lines = $(this).text().split('\n').length; var $numbering = $('').addClass('pre-numbering').hide(); $(this).addClass('has-numbering').parent().append($numbering); for (i = 1; i

     

    1.本站遵循行业规范,任何转载的稿件都会明确标注作者和来源;2.本站的原创文章,请转载时务必注明文章作者和来源,不尊重原创的行为我们将追究责任;3.作者投稿可能会经我们编辑修改或补充。

    相关文章
    • Python JSON序列化

      Python JSON序列化

      2016-11-10 11:00

    • JQuery遍历json数组的3种方法

      JQuery遍历json数组的3种方法

      2016-11-06 11:00

    • php 中利用json_encode和json_decode传递包含特殊字符的数据

      php 中利用json_encode和json_decode传递包含特殊字符的数据

      2016-11-06 10:00

    • JSON基础教程 中文PDF版

      JSON基础教程 中文PDF版

      2016-11-04 11:01

    网友点评