iOS基础 JSON格式

2022-09-09  本文已影响0人  anny_4243

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);
上一篇下一篇

猜你喜欢

热点阅读