c 解析java 对象_objective-c和java下解析对象类型和数组类型JSON字符串

首先讲objective-c如何实现:

这里需要用到2个插件,一个是JSONKit,另一个是Jastor,一共包含6个文件,3个.h头文件和3个.m实现文件。在ARC的工程中如何导入不支持ARC的第三方工具请看这篇文章:iOS在支持arc的工程中,导入不支持arc的第三方的插件

bf7dd0e74380e4795523cb410dd64f50.png具体文件在网上都比较好找,自己去下载即可。

NSObject类型的json字符串转换为对象

大体的思路是这样,首先将json字符串先转化成NSDictionary,然后再通过参数是NSDictionary的初始化方法来生成相应的对象。

其中生成NSDictionary的过程是由JSONKit提供的NSString的objectFromJSONString方法来完成的。

而将NSDictionary生成相应对象的过程是有Jastor来完成,这个过程有几个要求:

你的对象必须继承Jastor对象;

你的对象的属性名必须和json字符串的属性名称对应;

如果你的对象中包含自定义对象的列表,则需要为这个属性单独写一个类方法,规则是"属性名_class";

例子如下:

JSON字符串的结构如下图:

b08134fe41ffd381ae5f35c742915798.png其中包含一个班级的信息,和班级中的3个学生的信息。

对应的数据结构如下:

BMclass.h:

BMclass.m:

BMStudent.h:

BMStudent.m:

具体的解析代码如下:

运行后的解析的结果如下图(Debug的截图):

b68aa7e0d376cf888b9252de662f13bb.png

NSArray类型的json字符串转换为对象

如果您获得的字符串不是"{}"类型的,而是"[]"类型的,那么以上的解析方式不适用,需要将

NSDictionary* dic = [jsonStr objectFromJSONString];

修改为

NSArray* array = [jsonStr objectFromJSONString];

这时获得的数组是JKDictionary类型,如下;

95055ea3aab1e69e57fea9ffce7d2427.png

要想将array中的对象转换成自己的对象,需要再遍历一边数组,使用

BMClass* c = [[BMClass alloc]initWithDictionary:dic];

为每个对象进行转换即可。

=================================这是分割线=========================================

现在讲java如何实现:

java下需要用到一个gson.jar包。

java下解析json利用gson比iOS下略简单,思路是获取到要解析的对象的Type,然后利用GSON提供的fromJson方法解析就好了。

沿用上边iOS的json字符串举例:

BMClass.class代码如下:

BMStudent.class代码如下:

Object类型的json字符串转换为对象

解析的过程代码如下:

解析的结果如下(Debug截图):

e7fbc12a16a1fb98c70add943e566b93.png

List类型的json字符串转换为对象

解析的地方只更换Type的类型即可,例如:

文章结束。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值