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

    }

  • 相关阅读:
    java.lang.NoClassDefFoundError异常处理
    CMS之promotion failed&concurrent mode failure
    jvm 内存,线程,gc分析
    spring 参数校验
    常用的正则表达式
    《深入理解java虚拟机-高效并发》读书笔记
    ConcurrentHashMap源码分析
    web前端性能调优(二)
    由自动装箱和拆箱引发我看Integer源码
    阅读《effective java-第17条》遇到的问题解决与分享
  • 原文地址:https://www.cnblogs.com/hyuganatsu/p/NSJSONSerialization.html
Copyright © 2011-2022 走看看