sbjson数据的生成和解析

 

Json是一种类似XML的数据传输方式。已经是一种普遍使用的网络传输格式。

以下是我使用json的总结。

经常会用到json在序列化和反序列。不多说,用例子说明一切。

 

1.把json数据解析成通用数据的实例:

id jsonObject = [jsonString JSONValue];

通过判断jsonObject在类型解析数据。

 

2.把数据组织成jason数据的实例:

通过观察json数据的组织方式,可以理解json数据的解析方式。

{"age":30,"name":"xcode","num":["first","second","third"]}             //json 数据

 

    NSMutableDictionary *jsonDic = [NSMutableDictionarydictionaryWithCapacity:4];

    NSNumber *age = [NSNumber numberWithInt:30];

    NSArray *aArray = [NSArray arrayWithObjects:@"first", @"second", @"third", nil];

    [jsonDic setObject:@"xcode" forKey:@"name"];

    [jsonDic setObject:age forKey:@"age"];

    [jsonDic setObject:aArray forKey:@"num"];

    

    SBJsonWriter *jsonWriter = [[SBJsonWriter alloc] init];

    NSString *jsonStr = [jsonWriter stringWithObject:jsonDic];

    NSData *jsonData = [jsonWriter dataWithObject:jsonDic];

 

 注:json内容被SBJson转换为Objective-C的类型的方式如下:

Null -> NSNull
String -> NSMutableString
Array -> NSMutableArray
Object -> NSMutableDictionary
Boolean -> NSNumber
Number -> NSDecimalNumber

重要:  上面的转换指向,可以直观地这样理解:

{"age":30,"name":"xcode","num":["first","second","third"]}    

30 是number   转换后会变成NSDecimalNumber    

xcode 是String  转换后会变成NSMutableString    

["first","second","third"] 是Array  转换后会变成 NSMutableArray     即 key  "num" 对应的对象就是一个数组。而这个数据就包含了上面的内容。

 

 

posted @ 2013-05-16 12:34  ygm900  阅读(414)  评论(0编辑  收藏  举报