JSONKit使用示例
导入JSONKIT和dylib 将json转换为NSDictionary NSString *string =@"{"name": "My Name","list": ["one","two","three"]}";
NSData* jsonData = [stringdataUsingEncoding:NSUTF8StringEncoding];
NSDictionary *resultsDictionary = [jsonDataobjectFromJSONData];
NSLog(@"55----%@",resultsDictionary);
将NSDictionary转换为 json格式的string
//resultsDictionary是需要转换的dictionary
NSString*string=[[NSStringalloc]initWithData:[resultsDictionaryJSONData]encoding:NSUTF8StringEncoding];
官方JSON用法
NSError *error = nil; NSDictionary *dict_1 = [NSJSONSerializationJSONObjectWithData:request.responseDataoptions:kNilOptionserror:&error]; if (!dict_1 && error) { NSLog(@"error-----------------------error"); return; }else{ NSLog(@"OK-------------OK---------"); } NSLog(@"dict_22222111------------------%@",dict_1);
NSString *str = [[NSStringalloc]initWithData:request.responseDataencoding:NSUTF8StringEncoding]; NSLog(@"str-----------------%@",str);
关于NSJSONSerialization,官方文档中有如下介绍:
You use the An object that may be converted to JSON must have the following properties:
接下来看看如何使用,首先是如何生成JSON格式的数据:
我这里选用项目中的代码片段来进行简要介绍,以下显示了登陆请求JSON格式数据的生成
NSDictionary中的key就是json字符串中的key,object就是json字符串中的value,isValidJSONObject:方法是检测Foundation对象能否合法转换为JSON对象, dataWithJSONObject:options:error方法是将Foundation对象转换为JSON对象,参数 NSJSONWritingPrettyPrinted的意思是将生成的json数据格式化输出,这样可读性高,不设置则输出的json字符串就是一整行。
解析服务端返回的json格式数据:
copy
获取返回字符串中key为status的value: copy
#import <Foundation/Foundation.h>
#define URL @"http://douban.fm/j/mine/playlist?type=n&h=&channel=0&from=mainsite&r=4941e23d79"
int
main
(
argc
,
const
char
*
argv
[
]
)
{
@
autoreleasepool
{
///网络请求的数据json解析成字典形式
NSData
*data
=
[
NSData
dataWithContentsOfURL
:
NSURL
URLWithString
:URL
;
NSDictionary
*dic
NSJSONSerialization
JSONObjectWithData
:data
options
:NSJSONReadingAllowFragments
error
:nil
;
NSLog
(
@"dic=%@"
dic
)
;
///将foundation对象转换成json数据判断这个对象是否能转换成json数据
if
(
isValidJSONObject
:dic
)
{
NSError
*error
;
*jsondata
dataWithJSONObject
:dic
:NSJSONWritingPrettyPrinted
error
:
&
error
;
NSString
*str
alloc
]
initWithData
:jsondata
encoding
:NSUTF8StringEncoding
;
(
@"jsondata=%@"
str
;
[
str
release
;
}
}
return
0
;
}
(编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |