iPhone上的JSON

本文介绍了JSON在iOS开发中的应用及其相对于XML和plist的优势。通过一个实例展示了如何使用JSONforObjC框架将JSON字符串转换为复杂的NSDictionary对象,并讨论了这种转换在实际应用中的便利性。
JSON我就不多解释了,需要更多信息的朋友请到json.org上查看。

在iPhone上访问网络内容是很必须的,而一些数据就需要以某种形式储存在web服务器上。比如一个app的目录,内容,索引等等。而xml和json,plist都是比较方便的方式。

-XML在iPhone上是非常好用的,但是对复杂的数据结构使用上就不那么方便了,具体可以参阅苹果的“基于事件的XML”和“基于树的XML”编程向导

-plist是再方便不过了,不过我看最多也就是一个NSDictionary而已,复杂一些的话,数据输入上也会非常非常的麻烦。

-JSON本来是不被苹果支持的,但是有人很Nice的帮我们解决了这个问题:JSON for OBJC http://code.google.com/p/json-framework/

基本上来说,这个框架异常的简单易用,会将得到的json字符串处理成一个复杂NSDictionary对象,而每一个值都还是一个NSDictionary对象

比如:

{
"华藏净宗学会":
{
"zhaomu":
{
"name":"净宗朝暮课本",
"length":142,
"digits":3
},
"kesong":
{
"name":"净宗共修课本",
"length":75,
"digits":2
}
},
"生命基金会":
{
"dabei88":
{
"name":"大悲出相图",
"length":88,
"digits":2
}
}
}
就会转换为一个复杂无比的NSDictionary:

[[NSDictionary alloc]
initWithObjects:[NSArray
arrayWithObjects:
[NSDictionary
dictionaryWithObjects:[NSArray
arrayWithObjects:
[NSDictionary
dictionaryWithObjects:[NSArray
arrayWithObjects:
@"净宗朝暮课本",
@"142",
@"3",nil]
forKeys:
[NSArray arrayWithObjects:
@"name",
@"length",
@"digits",nil]],
[NSDictionary
dictionaryWithObjects:[NSArray
arrayWithObjects:
@"净宗共修课本",
@"75",
@"2",nil]
forKeys:
[NSArray arrayWithObjects:
@"name",
@"length",
@"digits",nil]],nil]
forKeys:[NSArray arrayWithObjects:@"zhaomu",@"kesong",nil]],
[NSDictionary
dictionaryWithObjects:[NSArray
arrayWithObjects:
[NSDictionary
dictionaryWithObjects:[NSArray
arrayWithObjects:
@"大悲出相图",
@"88",
@"2",nil]
forKeys:
[NSArray arrayWithObjects:
@"name",
@"length",
@"digits",nil]],nil]
forKeys:[NSArray arrayWithObjects:@"dabei88",nil]],nil]
forKeys:[NSArray arrayWithObjects:@"华藏净宗学会",@"生命基金会",nil]];
我是非常佩服自己能打出来上面的巨大无比的定义式。。。。没有编译错误

不管怎么样,转换后,在系统中就可以非常方便的使用json的键值结构信息咯~!!!
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值