objective-c和java下如何快速的解析JSON字符串

首先讲objective-c如何实现:

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

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

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

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

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

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

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

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

例子如下:

JSON字符串的结构如下图:

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

对应的数据结构如下:

BMclass.h:

?





1

2

3

4

5

6

@interface
BMClass : Jastor

@property
(strong,nonatomic) NSString* name;

@property
(strong,nonatomic) NSString* grade;

@property
(strong,nonatomic) NSArray* students;

+(id)students_class;

@end

BMclass.m:

?





1

2

3

4

5

6

7

@implementation
BMClass

@synthesize
name,grade,students;

+(id)students_class{

    return
[BMStudent class];

}

@end

BMStudent.h:

?





1

2

3

4

5

@interface
BMStudent : Jastor

@property
(strong,nonatomic) NSString* name;

@property
(strong,nonatomic) NSString* sex;

@property
(nonatomic) int
age;

@end

BMStudent.m:

?





1

2

3

@implementation
BMStudent

@synthesize
name,age,sex;

@end

具体的解析代码如下:

?





1

2

NSDictionary* dic = [jsonStr objectFromJSONString];

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

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

  

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

现在讲java如何实现:

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

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

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

BMClass.class代码如下:

?





1

2

3

4

5

public class BMClass {

    public
String name;

    public
String grade;

    public
List<BMStudent> students;

}

BMStudent.class代码如下:

?





1

2

3

4

5

public class BMStudent {

    public
String name;

    public
String sex;

    public
int
age;

}

解析的过程代码如下:

?





1

2

3

Gson gson = new
Gson();

Type classType = new
TypeToken<BMClass>() {}.getType();

BMClass c = gson.fromJson(jsonStr, classType);

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

文章结束。

时间: 2024-12-15 01:53:43

objective-c和java下如何快速的解析JSON字符串的相关文章

springMVC框架下JQuery传递并解析Json数据

json作为一种轻量级的数据交换格式,在前后台数据交换中占领着很重要的地位.Json的语法很简单,採用的是键值对表示形式.JSON 能够将 JavaScript 对象中表示的一组数据转换为字符串,然后就能够在函数之间轻松地传递这个字符串,或者在异步应用程序中将字符串从 Web 客户机传递给server端程序,也能够从server端程序传递json格式的字符串给前端并由前端解释.这个字符串是符合json语法的,而json语法又是javascript语法的子集,所以javascript很easy解释

通过Json和Gson,快速生成和解析json字符串

1,首先我们要先明白json与gson有什么区别 其实他们是完全不同的概念: json是一种数据格式,便于数据传输,存储,交换. gson则是一种组件库,就是通过Gson我们可以把java中的对象(gson.toJson()),转换成Json字符串,当然反过来也是可以的(gson.fromJson); 2,代码 首先我们需要JSon和Gson这两个jar包 package com.json.dome; import java.util.ArrayList;import java.util.Lis

java 解析JSON字符串

JAVA解析json字符串:根据城市itemName名称获取其码itemCode 1.json字符串 [{"childList":        [{"childList":            [{"childList":[],"id":374,"itemCode":"110101","itemName":"东城区","itemNam

java将其他数据格式转换成json字符串格式

package com.wangbo.util; import java.beans.IntrospectionException; import java.beans.Introspector; import java.beans.PropertyDescriptor; import java.math.BigDecimal; import java.math.BigInteger; import java.util.HashMap; import java.util.List; import

Java自定义方法转换前端提交的json字符串为JsonObject对象

前端提交json字符串格式数据,Java后端通过自定义方法接收json字符串数据并转换为JsonObject对象,代码如下放到RequestData.Java类中: public static JSONObject getRequestJsonObj(HttpServletRequest request) { InputStreamReader reader = null; InputStream in = null; String requsetSb = ""; StringBuff

sublime在vi模式下如何快速给选中的字符串加双引号?

1,在vim模式下选中某字符串: 2,按双引号或单引号键,再按ESC 大功告成.

java多种方式解析json字符串

第一种:用net.sf.json硬解.缺点:要求字段名称和json字符串中的字段名一样,字段命名会违反驼峰规则,也不利于拓展: JSONArray jsonArray = JSONArray.fromObject(str);  JSONObject jObj = jsonArray.getJSONObject(0);  User user= (User)jObj.toBean(jObj,User.class); 第二种:用Gson解析json字符串.优点:写法简单,字段名称只要使用@Serial

分享一个小工具:Excel表快速转换成JSON字符串

在游戏项目中一般都需要由策划制作大量的游戏内容,其中很大一部分是使用Excel表来制作的.于是程序就需要把Excel文件转换成程序方便读取的格式. 之前项目使用的Excel表导入工具都是通过Office Excel组件来实现数据访问的,效率十分令人不满.一个端游项目一般要上百个表格,手游项目20.30个表格基本也是要的,于是表格导入程序的过程一般要几分钟,项目后期要接近半个小时. 此次分享的小工具,在速度上有质的飞越,比上述方法实现的工具有接近100倍的速度提升: 完整项目源代码下载:https

Java如何快速构造JSON字符串

目标:根据key/value快速构造一个JSON字符串作为参数提交到web REST API服务上. 分别测试里阿里巴巴的FastJson和Google Gson,最终我采用了Google Gson来构造. 原因: Google Gson来构造的JSON字符串里面,保留了传递参数key/value的顺序: FastJson没有保留顺序(这个是符合JSON国际标准的,本身没有错误.是SugarCRM REST API有bug,要求传递过来的参数是按照它的顺序要求的). Google Gson代码片