• 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];

    }

  • 相关阅读:
    前缀和(题目)
    面向对象的程序设计_第一次作业 3月12日
    搜索(题目)
    牛客算法周周练3 B--「木」迷雾森林(dp记忆化搜索+快速读入模板)
    牛客算法周周练3 D--表达式求值(stack)
    [NOIP2012]同余方程(拓展欧几里得)
    欧几里得算法和拓展欧几里得
    Educational Codeforces Round 86 (Rated for Div. 2)
    “Shopee杯” e起来编程暨武汉大学2020年大学生程序设计大赛决赛(重现赛)A--A Simple Problem about election(模拟)
    “Shopee杯” e起来编程暨武汉大学2020年大学生程序设计大赛决赛(重现赛)F--Figure out the sequence(map)
  • 原文地址:https://www.cnblogs.com/hyuganatsu/p/NSJSONSerialization.html
Copyright © 2020-2023  润新知