JAVA对json操作的五种方法详解

2025-10-24 09:42:29

我们在日常开发中少不了和JSON数据打交道,下面总结了用到的框架来解析JSON数据

json-liborg.jsonjackSonfastjsonGSON1. json-lib

json-lib具有通用性,但是比较麻烦,且时间有些久远,jar包只更新到2010年

1.1 maven依赖

net.sf.json-lib

json-lib

2.4

jdk15//jar包区分jdk1.3和jdk1.5版本

1.2 具体操作

1.2.1 JSONObject与String相互转换

JSONObject jsonobject= JSONObject.fromObject(str);

String str = JSONObject.toString

1.2.2 获取JSONObject数据及遍历JSONArray

String str = JSONObject.getInt("keys")

String str = JSONObject.getString("keys")

JSONArray = JSONObject.getJSONArray(String);

遍历:

for(i

{

JSONObject = JSONArray.getJSONObject(i);

JSONObject.getInt()...

}

Iterator iterator = JSONObject.keys();

while(iterator.hasNext()){

String keys = iterator.next();

}

1.2.2 JSONObject转对象

Grade grade = (Grade)JSONObject.toBean(jsonObject,Grade.class);

2.org.json

与json-lib相类似,主要有三点区别

2.1maven依赖

org.json

json

20170516

2.2 创建json对象

JSONObject = new JSONObject(str);

2.3

net.sf.json.JSONObject: 没有严格要求获取字段的类型跟getXXX()的类型一样

org.json.JSONObject:获取的字段类型必须跟getXXX()的类型一样

2.4 JSONArray.length()

3. jackSon

springMVC内置解析器就是jackson

3.1 maven依赖

com.fasterxml.jackson.core

jackson-databind

2.9.0

3.2 对象和String之间的转换

ObjectMapper mapper=new ObjectMapper();

Grade grade=mapper.readValue(json1, Grade.class);

mapper.writeValueAsString(grade);

3.3 对JsonNode的遍历

JsonNode jsonNode = mapper.readTree(jsonStr);

Iterator keys = jsonNode.fieldNames();

while(keys.hasNext()){

String fieldName = keys.next();

System.out.println(fieldName + " : " + jsonNode.path(fieldName).toString());

}

4. fastjson

阿里巴巴开源框架,效率最高

4.1 maven依赖

com.alibaba

fastjson

1.2.37

4.2 String转对象

Student stu = JSON.parseObject(json,Student.class);

List list=JSON.parseArray(json2, String.class);

4.3 对象转String

JSON.toJSONString(stu);

//or String json = JSON.toJSON(stu).toString();

5.GSON

谷歌产品

5.1 maven依赖

com.google.code.gson

gson

2.8.1

5.2 String转对象

Gson gson = new Gson();

Grade grade = gson.fromJson(json1,Grade.class);

ArrayList list=gson.fromJson(json2,new TypeToken>(){}.getType());

5.3 对象转String

String json=gson.toJson(grade);

QQ绑定手机号教程:详细步骤与注意事项
梦幻西游手游大唐和方寸哪个好 谁更厉害