zoukankan      html  css  js  c++  java
  • NSJSONSerialization

    /*

          总结:   json格式的读写:

     

            解析:

             data =   NSData  dataWithContentsOfUrl:XXX

             

             id obj  =  [ NSJsonSerialization NSJSONObjectWithData:data XXXX];

           

            生成json格式的文件

             array dict

             NSData* data  = [NSJSONSerialization dataWithJSONObject:array/dict XXXX];

            data writeToFile:PATH;

            或者

            data writeToURL:(NSURL*)url;

    */

    #define urlString @"http://localhost/files/test.json"

     

    #define cpuString @"http://localhost/files/cpu.json"

     

    void parseJsonData(void)

    {

        //将特殊字符编码,例如 中文

    //    urlString stringByAddingPercentEscapesUsingEncoding:<#(NSStringEncoding)#>

        //将一些被编码的字符串解码成特殊字符中

    //    urlString stringByReplacingPercentEscapesUsingEncoding:<#(NSStringEncoding)#>

        

        //url字符串编码,即去除特殊字符串,若是没有特殊字符,可以不必

        NSString* validUrlString = [urlString stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding];

        

        NSURL * url = [NSURL URLWithString:validUrlString ];

        

        NSData* data = [ NSData dataWithContentsOfURL:url ];

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

        NSLog(@"contents:%@",contents);

        

        

        NSError* error=nil;

        

        NSArray* array = [NSJSONSerialization JSONObjectWithData:data options:NSJSONReadingMutableContainers error:&error];

    }

    //********************************************

    #define PATH @"/Users/wenhua/Desktop/write.json"

     

    //把内存中的数据构造成json格式的字节流

    void makeJsonData(void)

    {

        NSMutableArray *array = [[ NSMutableArray alloc]init];

        

        [array addObject:@"abc"];

        [array addObject:[NSNumber numberWithInt:123]];

        [array addObject:[NSNumber numberWithBool:YES]];

        [array addObject:[NSNumber numberWithFloat:3.14159]];

        [array addObject:[NSNull null]];

        

        //创建一个字典

        NSDictionary* dict=@{@"k1":@"v1",@"k2":@"v2"};

        [array addObject:dict];

        

        NSArray* arr = @[@"one",@"two",@"three" ];

        [array addObject:arr];

     

        NSError* error=nil;

        

        NSData* data = [NSJSONSerialization dataWithJSONObject:array options:NSJSONWritingPrettyPrinted error:&error];

        if (error) {

            NSLog(@"%@",error);

            return;

        }

        [data writeToFile:PATH  atomically:YES];

    }

  • 相关阅读:
    【转】linux root用户ifconfig报command not found
    xp系统word2007升级到2010.若失败,可向以下几个方向考虑
    ORACLE 检查数据库表中是否存在不规范字 段的语句参考.sql
    oracle关于分区相关操作
    表大小查看
    【收藏】表分区
    【收藏】Linux下tomcat内存配置
    oracle分页
    首测!阿里云盘终于来了,扫码获取邀请码
    MYSQL 删除表中重复数据
  • 原文地址:https://www.cnblogs.com/hyuganatsu/p/NSJSONSerialization.html
Copyright © 2011-2022 走看看