变更记录

序号 录入时间 录入人 备注
1 2016-05-12 Alfred Jiang -

方案名称

语法 - NSString \ NSData \ NSArray \ NSDictionary 格式转换 ( NSArray / NSDictionary <=> NSData <=> NSString )

关键字

语法 \ 数据存储 \ 格式转换 \ NSString \ NSData \ NSArray \ NSDictionary \ NSArray / NSDictionary <=> NSData <=> NSString

需求场景

  1. 进行 NSString \ NSData \ NSArray \ NSDictionary 格式转换

参考链接

  1. Sina - NSJSONSerialization-JSON数据与NSDictionary和NSArray之间的转化

详细内容

1. NSArray / NSDictionary <=> NSData ( Json )
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
// 将字典或者数组转化为JSON串
- (NSData *)toJSONData:(id)data{

if (!data) {

NSLog(@"Please Check %s parameter",__FUNCTION__);
return nil;
}

NSError *error = nil;
NSData *jsonData = [NSJSONSerialization dataWithJSONObject:data
options:NSJSONWritingPrettyPrinted
error:&error];

if ([jsonData length] != 0 && error == nil){

return jsonData;
}
else{

return nil;
}
}

// 将JSON串转化为字典或者数组
- (id)toArrayOrDictionary:(NSData *)jsonData{

if (!jsonData || [jsonData length] == 0) {

NSLog(@"Please Check %s parameter",__FUNCTION__);
return nil;
}

NSError *error = nil;
id jsonObject = [NSJSONSerialization JSONObjectWithData:jsonData
options:NSJSONReadingAllowFragments
error:&error];

if (jsonObject != nil && error == nil){

return jsonObject;
}
else{

return nil;
}
}
3. NSData <=> NSString ( Json )
1
2
3
NSData *jsonData = [jsonString dataUsingEncoding:NSASCIIStringEncoding];

NSString *jsonString = [[NSString alloc] initWithData:jsonData encoding:NSASCIIStringEncoding];

效果图

(无)

备注

(无)