一、区分json字符串和json对象:
1、json字符串就是字符串 ,只不过字符串的内容格式是json格式的。
2、json对象是对象 ,是json格式的对象 。什么是json格式啊 就是 键值对, 键可以是字符串也可以数字 ,值可以是字符串 ,也是可以是数值,还可以是对象。
二、当没有网络却需要调试从服务器返回的数据解析怎么办?使用假数据,创建一个与服务器返回的json格式相同的字符串,把它当做返回数据进行解析。
NSString *jsonStr = @"{name:\"zhu\", age:10}";
所有的双引号都要转义成\”,否则不符合OC语法,解析的时候将json字符串转成字典即可。
json字符串转字典的方法调用:
// json字符串转字典
NSDictionary *data = [SomeClass dictionaryWithJsonString:jsonStr];
json字符串转字典的方法实现:
/*!
* @brief 把格式化的JSON格式的字符串转换成字典
* @param jsonString JSON格式的字符串
* @return 返回字典
*/
+ (NSDictionary *)dictionaryWithJsonString:(NSString *)jsonString {
if (jsonString == nil) {
return nil;
}
NSData *jsonData = [jsonString dataUsingEncoding:NSUTF8StringEncoding];
NSError *err;
NSDictionary *dic = [NSJSONSerialization JSONObjectWithData:jsonData
options:NSJSONReadingMutableContainers
error:&err];
if(err) {
NSLog(@"json解析失败:%@",err);
return nil;
}
return dic;
}