美文网首页
iOS基础 JSON格式

iOS基础 JSON格式

作者: anny_4243 | 来源:发表于2022-09-09 14:45 被阅读0次

    JSON是一种轻量级的数据格式,一般用于数据交互。目前JSON的使用非常广泛,绝大多数网络请求都采用了JSON格式。JSON的格式很像Objective-C中的字典和数组,标准JSON格式key必须用双引号包裹起来。

    {"name":"九九学院”","site":"www.99ios.com"}
    

    要想从JSON中获取其中的详细数据,则需要对JSON进行解析,即将JSON转换为Objective-C中的数据类型。JSON数据格式与Objective-C对象之间的参照如z所示。

    参照表

    对于JSON数据的解析既可以使用Foundation框架中提供的方法,也可以使用第三方框架。其中苹果官方提供了原生的解析JSON数据的方法——NSJSONSerialization。NSJSONSerialization类中提供了JSON与Objective-C对象之间相互转换的方法。

    JSON数据转Objective-C对象,使用的是JSONObjectWithData:options:error:error方法。

    + (nullable id)JSONObjectWithData:(NSData *)data options:(NSJSONReadingOptions)opt error:(NSError **)error;
    

    Objective-C对象转JSON数据,使用的是dataWithJSONObject:options:error:方法。

    + (nullable NSData *)dataWithJSONObject:(id)obj options:(NSJSONWritingOptions)opt error:(NSError **)error;
    

    另外,JSON的解析也可以使用第三方框架,常见的有JSONKit、SBJson等。需要特别说明的是,假如使用AFNeworking处理网络请求,该框架会自动解析JSON类型的网络响应数据。

    JSON 和字符串之间的转换

    有时候需要在JSON 和字符串之间进行相互转换,例如,在网络编程中,可以使用

    字符串转JSON:

    - (NSData*)dataUsingEncoding:(NSStringEncoding)encoding;
    

    JSON转字符串:

    -(id)initWithData:(NSData *)data encoding:(NSStringEncoding)encoding;
    
    NSData *data = [str dataUsingEncoding:NSUTF8StringEncoding];
    str = [[NSString alloc]initWithData:data encoding:NSUTF8StringEncoding];
    NSLog(@"%@",str);
    

    相关文章

      网友评论

          本文标题:iOS基础 JSON格式

          本文链接:https://www.haomeiwen.com/subject/qijonrtx.html