Objective-C IOS JSON序列化,以及NSdata、NSString、NSDictionay之间的转换

//NSString转NSData
NSData *aData = [str dataUsingEncoding: NSUTF8StringEncoding];

//NSData转为字符串NSString
[[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding]

//字典序列化转NSData
NSData *jsonData = [NSJSONSerialization dataWithJSONObject:dict options:NSJSONWritingPrettyPrinted error:&error];

//NSData转为反序列化Json字符串:常用接收返回信息NSData的转换 NSData为json形式字符串才可以
NSDictionary *dict= [NSJSONSerialization JSONObjectWithData:data options:0 error:nil]

/**
options: 解析出来可能是数组或者字典
NSJSONReadingMutableContainers = (1UL << 0), 容器可变 一般使用这个

NSJSONReadingMutableLeaves = (1UL << 1),

NSJSONReadingFragmentsAllowed = (1UL << 2),// 允许不是json形式的字符串,一般请求返回只有一个字符串,一般不使用这个
*/

//序列化: 把对象转换为json形式的字符串
//反序列化: 把json形式的字符串转化成OC对象

//一、拼接NSDictionary转化为序列化Json字符串转为NSData
NSDictionary *json = @{@"username":@"18513884422",@"pwd":@"1",@"captchaValue":@"1223",@"ee":@"111212"};
NSData *data= [NSJSONSerialization dataWithJSONObject:dict options:NSJSONWritingPrettyPrinted error:nil]

//二、字符串拼接json串转化为序列化Json字符串转为NSData
NSString *jsonStr=@"{\"name\":\"张三\",\"age\":\"12\"}";
NSData *data= [jsonStr dataUsingEncoding:NSUTF8StringEncoding];

//三、数组转化为序列化Json字符串转为NSData
NSArray *array=@[
@{@"username":@"18513884422",@"pwd":@(13)},
@{@"username":@"18513884462",@"pwd":@(14)},
];
NSData *data=[NSJSONSerialization dataWithJSONObject:array options:0 error:NULL];

//四、 对象序列化
Person *p1=[[Personalloc]init];

//KVC 赋值
[p1 setValue:@"张三"forKey:@"name"];
[p1 setValue:@ (13) forKey:@"age"];

//判断对象是否能进行json序列化
[NSJSONSerializationisValidJSONObject:p1];

//对象转化为data
NSData *data= [NSJSONSerializationdataWithJSONObject:p1 options:0error:NULL];

//把自定义对象转化为字典,加入数组中转化为NSData 传入需要序列化的参数
NSDictionary *dictP=[p1 dictionaryWithValuesForKeys:@[@"name",@"age"]];
NSMutableArray *mArray=[NSMutableArrayarray];
[mArray addObject:dictP];
NSData *data=[NSJSONSerialization dataWithJSONObject:mArray options:0 error:NULL];

//json文件转为data数据写入文件
[data writeToFile:@"Users/Apple/Desktop/1111.json" atomically:YES];
//读取文件返回NSdata数据
[NSData dataWithContentsOfFile:@"Users/Apple/Desktop/1111.json"];

 

Objective-C IOS  JSON序列化,以及NSdata、NSString、NSDictionay之间的转换-上流阁

*文章为作者独立观点,不代表上流阁立场
本文由 江风成 授权 上流阁 发表,并经上流阁编辑。转载此文章须经作者同意,并请附上出处(上流阁)及本页链接。原文链接https://www.o6c.com/ios/2022/03/13/1529.html
发表评论

坐等沙发
相关文章
Objective-C IOS  预处理 宏 #define
Objective-C IOS 预处理 宏 #define
Objective-C IOS UITextField的各种属性设置
Objective-C IOS UITextField的各种属性…
Objective-C IOS UITextField输入框下键盘显示
Objective-C IOS UITextField输入框下键…
MacBook MAC系统显示隐藏文件和.点开头文件方法
MacBook MAC系统显示隐藏文件和.点开头…
IOS开发wkwebview与HTML页面JS互相交互的干货
IOS开发wkwebview与HTML页面JS互相交互…
javaweb开发程序员php开发,微信开发。接受定制开发

最新评论