zoukankan      html  css  js  c++  java
  • iOS

      1 #import "ViewController.h"
      2 
      3 @interface ViewController ()
      4 
      5 @end
      6 
      7 @implementation ViewController
      8 
      9 -(void)touchesBegan:(NSSet<UITouch *> *)touches withEvent:(UIEvent *)event
     10 {
     11     [self test];
     12 }
     13 
     14 -(void)jsonToOC
     15 {
     16     //1.确定url
     17     NSURL *url = [NSURL URLWithString:@"http://120.25.226.186:32812/login?username=123&pwd=456&type=JSON"];
     18     
     19     //2.创建请求对象
     20     NSURLRequest *request = [NSURLRequest requestWithURL:url];
     21     
     22     //3.发送异步请求
     23     [NSURLConnection sendAsynchronousRequest:request queue:[NSOperationQueue mainQueue] completionHandler:^(NSURLResponse * _Nullable response, NSData * _Nullable data, NSError * _Nullable connectionError) {
     24         //data---->本质上是一个json字符串
     25         //4.解析数据
     26         //NSLog(@"%@",[[NSString alloc]initWithData:data encoding:NSUTF8StringEncoding]);
     27         
     28         //JSON--->oc对象 反序列化
     29         /*
     30          第一个参数:JSON的二进制数据
     31          第二个参数:
     32          第三个参数:错误信息
     33          */
     34         /*
     35          NSJSONReadingMutableContainers = (1UL << 0), 可变字典和数组
     36          NSJSONReadingMutableLeaves = (1UL << 1),      内部所有的字符串都是可变的 ios7之后又问题  一般不用
     37          NSJSONReadingAllowFragments = (1UL << 2)   既不是字典也不是数组,则必须使用该枚举值
     38          */
     39         
     40         NSString *strM = @""wendingding"";
     41         
     42         //        NSDictionary *dict = [NSJSONSerialization JSONObjectWithData:data options:kNilOptions error:nil];
     43         
     44         id obj = [NSJSONSerialization JSONObjectWithData:[strM dataUsingEncoding:NSUTF8StringEncoding] options:NSJSONReadingAllowFragments error:nil];
     45         
     46         NSLog(@"%@---%@",[obj class],obj);
     47         
     48     }];
     49 
     50 }
     51 
     52 //JSON--->OC
     53 -(void)JSONWithOc
     54 {
     55     //NSString *strM = @"{"error":"用户名不存在"}";
     56     //NSString *strM = @"["error","用户名不存在"]";
     57     //NSString *strM = @""wendingding"";
     58     //NSString *strM = @"false";
     59     //NSString *strM = @"true";
     60     NSString *strM = @"null";
     61     
     62     id obj = [NSJSONSerialization JSONObjectWithData:[strM dataUsingEncoding:NSUTF8StringEncoding] options:NSJSONReadingAllowFragments error:0];
     63     NSLog(@"%@---%@",[obj class],obj);
     64     
     65     /*
     66      JOSN   OC
     67      {}     @{}
     68      []     @[]
     69      ""     @""
     70      false  NSNumber 0
     71      true   NSNumber 1
     72      null      NSNull为空
     73      */
     74     
     75     //nil
     76     [NSNull null];   //该方法获得的是一个单粒,表示为空,可以用在字典或者是数组中
     77     
     78 }
     79 
     80 //OC--->json
     81 -(void)OCtojson
     82 {
     83     NSDictionary *dictM = @{
     84                             @"name":@"dasheng11",
     85                             @"age":@3
     86            };
     87     
     88     NSArray *arrayM = @[@"123",@"456"];
     89     
     90     //注意:并不是所有的OC对象都能转换为JSON
     91     /*
     92      - 最外层必须是 NSArray or NSDictionary
     93      - 所有的元素必须是 NSString, NSNumber, NSArray, NSDictionary, or NSNull
     94      - 字典中所有的key都必须是 NSStrings类型的
     95      - NSNumbers不能死无穷大
     96      */
     97     NSString *strM = @"WENIDNGDING";
     98     
     99     BOOL isValid = [NSJSONSerialization isValidJSONObject:strM];
    100     if (!isValid) {
    101         NSLog(@"%zd",isValid);
    102         return;
    103     }
    104     
    105     //OC--->json
    106     /*
    107      第一个参数:要转换的OC对象
    108      第二个参数:选项NSJSONWritingPrettyPrinted 排版 美观
    109      */
    110     NSData *data = [NSJSONSerialization dataWithJSONObject:strM options:NSJSONWritingPrettyPrinted error:nil];
    111     
    112     NSLog(@"%@",[[NSString alloc]initWithData:data encoding:NSUTF8StringEncoding]);
    113 }
    114 
    115 -(void)test
    116 {
    117     NSArray *arrayM = [NSArray arrayWithContentsOfFile:@"/Users/xiaomage/Desktop/课堂共享/11大神班上课资料/05-多线程网络/0225/资料/apps.plist"];
    118     NSLog(@"%@",arrayM);
    119     
    120     //[arrayM writeToFile:@"/Users/xiaomage/Desktop/123.json" atomically:YES];
    121     
    122     //OC--->JSON
    123     NSData *data =  [NSJSONSerialization dataWithJSONObject:arrayM options:NSJSONWritingPrettyPrinted error:0];
    124     [data writeToFile:@"/Users/xiaomage/Desktop/123.json" atomically:YES];
    125 }
  • 相关阅读:
    Optional int parameter 'id' is present but cannot be translated into a null value due to being decla
    Interllij IDEA 使用Git工具
    Interllij IDEA 注释模板(类和方法)
    Intellij IDEA 去掉Mapper文件中的背景
    Interllij IDEA常用快捷键
    JSTL <c:if test=“eq ne lt..”></if> 用法
    启动Tomcat报错 “A child container failed during start”
    服务器证书日期无效 SSL_DATE_INVALID
    window 计算机 开启事务
    MVC Model验证疑难杂症
  • 原文地址:https://www.cnblogs.com/qingzZ/p/9293733.html
Copyright © 2011-2022 走看看