简单介绍JSON和XML

JSON:

JSON与oc对象可以相互转化

最常见的是JSON与数组之间的转化:

数组转化为JSON

 NSDictionary *dic=@{@"name":@"lisi",@"age":@24,@"weight":[NSNull null]};

    NSLog(@"%@",dic);

    //JSONOC对象之间的相互转换

    //isValidJSONObject判断SONObject(NSDictionary,NSArray)是否有效

    //options:NSJSONWritingPrettyPrinted 显示可读Json字符串

    if ([NSJSONSerialization isValidJSONObject:dic]) {

        NSData *data=[NSJSONSerialization dataWithJSONObject:dic options:NSJSONWritingPrettyPrinted error:nil];

        NSString *strJSON=[[NSString alloc]initWithData:data encoding:NSUTF8StringEncoding];

        NSLog(@"JSON:%@",strJSON);

    }

JSON转化为数组

 NSString*strJSON2=@{\"name\":\"lisi\",\"age\":28,\"weight\":null}";

 NSData *data2=[strJSON2 dataUsingEncoding:NSUTF8StringEncoding];


 NSDictionary *dic2=[NSJSONSerialization JSONObjectWithData:data2 options:NSJSONReadingAllowFragments error:nil];

    NSLog(@"oc:%@",dic2);

xml:

1.可扩展标记语言

2.设计宗旨是传输数据,而非显示数据

3.xml必须有根元素

4.必须嵌套正确

5.属性值必须加双引号

6.一些特殊符号必须转换为实体

xml命名规则:

1.可以含字母,数字以及其他字符

2.不能以数字或者标点符号开始

3.不能以字符“xml”(或者XM、Xml)开始

如下是一种简单的XML:

<?xml version="1.0" encoding="utf-8"?>


<Student id="1001" type="1">

<!--注释-->

   <Name>zhangsan</Name>

   <Age>18</Age>

   <Gender>female</Gender>

   <Weight>130</Weight>

   <Languages>

      <Language type="英语">Language </Language>

      <Language type="日语">Language </Language>

      <Language type="德语">Language </Language>

   </Languages>

</Student>

//解析xml

    //xml保存的路径(就是上面那个xml)

    _xmlpath=@"/Users/apple/Desktop/test.xml";

    //通过XMLDictionaryParser设置值

    //单例模式,设置解析器

    //step1.设置解析器

    XMLDictionaryParser *xmlParser=[XMLDictionaryParser sharedInstance];

    //显示所有的节点名

    xmlParser.nodeNameMode=XMLDictionaryNodeNameModeAlways;

    //属性字典

  xmlParser.attributesMode=XMLDictionaryAttributesModeDictionary;

    xmlParser.preserveComments=YES;

    //step2:解析xml

    NSDictionary *_dicxml=[NSDictionary dictionaryWithXMLFile:_xmlpath];

    NSLog(@"%@",_dicxml);

    NSLog(@"当前节点名字:%@",[_dicxml nodeName]);

    NSDictionary *dict=[_dicxml attributes];

    NSLog(@"%@",dict);

    

    NSDictionary *dicLanguage=[_dicxml objectForKey:@"Languages"];

    NSLog(@"Language:%@",[dicLanguage nodeName]);

    //读取注释

    //NSArray *temp=_dicxml.comments;

    NSLog(@"%@",[_dicxml comments]);


你可能感兴趣的:(简单介绍JSON和XML)