JSON解析、XML解析

来源:互联网 发布:淘宝招聘网 编辑:程序博客网 时间:2024/05/01 23:22
JSON解析
1大括号代表字典
2中括号(小括号)代表数组
3冒号的左右两边分别为键和值(key:value)
4数据和数据之间用逗号隔开

我们在本机上创建一个file.xml,进行解析,并取出年龄35
JSON解析和XML解析

//JSON解析
   本地读取student.xml文件
    NSString *jstr=[NSString stringWithContentsOfFile:[[NSBundle mainBundle]pathForResource:@"File" ofType:@"json"] encoding:NSUTF8StringEncoding error:nil];//取到路径
    //进行解析,因为最外面是字典,所以要用字典类型的对象来接
    NSDictionary *dic=[jstr JSONFragmentValue];
    //下面取值
    //取到hello这个key,取到的是数组里的内容所以要用数组来接
    NSArray *arr=[dic objectForKey:@"hello"];
    //取到下标为1的数组,因为数组里面又是一个字典,所以用字典来接
    NSDictionary *dic2=[arr objectAtIndex:1];
   //取到字典key为age的value,因为取出来的值是字符串,用字符串来接
    NSString *jage=[dic2 objectForKey:@"age"];
    //输出取出的age
    NSLog(@"%@",jage);
//XML解析
同样我们也在本地创建一个File.xml的文件里面包含:
<students>
    <student>
        <name>kellen</name>
        <age>25</age>
        <sex>M</sex>
    </student>
    <student>
        <name>jack</name>
        <age>35</age>
        <sex>M</sex>
    </student>
</students>

    //step1:本地读取student.xml文件
    //获取目录的xml文件
    NSString*xmlPath=[[NSBundle mainBundle]pathForResource:@"File" ofType:@"xml"];
    NSData*xmlData=[[NSData alloc]initWithContentsOfFile:xmlPath];
    //step2:将包含xml内容的字符串转化为document对象
   
    GDataXMLDocument*xmldoc=[[GDataXMLDocument alloc]initWithData:xmlData options:0 error:nil];
   
    //step3:获取到根节点
    //获取根节点(students)
    GDataXMLElement*rootElement=[xmldoc rootElement];
   
    //step4:遍历节点信息
    //获取根节点下的节点(student)
    NSArray*students=[rootElement elementsForName:@"student"];
    NSLog(@"%@",students);
    //使用forin遍历XML中的所有数据
    for (GDataXMLElement*stu in students) {
        //获取name节点的属性
        GDataXMLElement*nameElement=[[stu elementsForName:@"name"]objectAtIndex:0];
        NSString*name=[nameElement stringValue];//获取nameElement
        NSLog(@"Student name is:%@",name);
        //获取age节点的属性
        GDataXMLElement*ageElement=[[stu elementsForName:@"age"]objectAtIndex:0];
        NSString*age=[ageElement stringValue];
        NSLog(@"User age is :%@",age);
    }
}

0 0