您的位置 首页 java

「Java」提升工作效率,JSON字符串转换一句搞定——fastjson

前言

不知道大家在后端是否有手拼JSON串的经历,一长串代码,还很容易出错,页面解释不了还得拿去JSON格式化找错,实在难受。但自从使用了 fastjson 之后,小编可以将手拼 json 串的时间去刷刷头条了。

fastjson

现在JSON协议使用方便,越来越流行,,JSON的处理器有很多,而fastjson相比其他JSON处理器都要快,是阿里的开源框架,被不少企业使用,是一个极其优秀的JSON框架。

优点

  1. 速度快,无论是 序列化 还是反序列化,都是快
  2. 功能强大(支持普通JDK类包括任意Java bean Class、Collection、Map、Date或enum)
  3. 零依赖,没有依赖任何其他库,只要有JDK就OK
  4. 体积小,只有500+k,相比其他JSON框架包,小上一圈

用法

1.定义三个 字符串

2、JSON格式字符串与JSON对象之间的转换

2.1、JSON字符串-简单对象型与JSONObject之间的转换

2.1.1、JSON字符串转简单对象

代码:

JSONObject jsonObject = JSONObject.parseObject(JSON_OBJ_STR);

System.out.println(“name:” + jsonObject.getString(“name”) + ” age:” + jsonObject.getInteger(“age”));

输出:

name:黄磊 age:47

2.1.2、简单对象转JSON字符串

代码:

//已知JSONObject,目标要转换为json字符串

JSONObject jsonObject = JSONObject.parseObject(JSON_OBJ_STR);

// 第一种方式

String jsonString = JSONObject.toJSONString(jsonObject);

System.out.println(“第一种方式:”+jsonString);

// 第二种方式

jsonString = jsonObject.toJSONString();

System.out.println(“第二种方式:”+jsonString);

输出:

第一种方式:{“name”:”黄磊”,”age”:47}

第二种方式:{“name”:”黄磊”,”age”:47}

2.2、json字符串(数组类型)与JSONArray之间的转换

2.2.1、JSON字符串(数组类型)转JSONArray

代码:

输出:

name: 张艺兴 age: 27

name: 黄渤 age: 44

2.2.2、JSONArray转JSON字符串(数组类型)

代码:

//已知JSONArray,目标要转换为json字符串

JSONArray jsonArray = JSONArray.parseArray(JSON_ARRAY_STR);

String jsonString = JSONArray.toJSONString(jsonArray);

System.out.println(jsonString);

输出:

[{“name”:”张艺兴”,”age”:27},{“name”:”黄渤”,”age”:44}]

2.3、复杂json格式字符串与JSONObject之间的转换

2.3.1、复杂JSON格式字符串转JSONObject

代码:

输出:

name: 黄磊 age: 47

programName: 极限挑战 id: 1270

mateName: 张艺兴 mateAge: 27

mateName: 黄渤 mateAge: 44

2.3.2、JSONObject转复杂JSON格式字符串

代码:

//复杂JSONObject,目标要转换为json字符串

JSONObject jsonObject = JSONObject.parseObject(COMPLEX_JSON_STR);

String jsonString = JSONObject.toJSONString(jsonObject);

System.out.println(jsonString);

输出:

{“mates”:[{“name”:”张艺兴”,”age”:27},{“name”:”黄渤”,”age”:44}],”name”:”黄磊”,”program”:{“programName”:”极限挑战”,”id”:1270},”age”:47}

3、JSON格式字符串与javaBean之间的转换

3.1、JSON字符串与javaBean之间的转换

3.1.1、JSON字符串转javaBean

代码:

Person person = JSONObject.parseObject(JSON_OBJ_STR, Person.class);

System.out.println(person);

输出:

com.conta.bean.Person@3d82c5f3

3.1.2、javaBean转JSON字符串

代码:

Person person = new Person(“孙红雷”, 48);

String jsonString = JSONObject.toJSONString(person);

System.out.println(jsonString);

输出:

{“age”:48,”name”:”孙红雷”}

3.2、JSON字符串-数组类型与javaBean之间的转换

3.2.1、JSON字符串-数组类型转javaBean

代码:

List<Person> personList = JSONArray.parseArray(JSON_ARRAY_STR, Person.class);

System.out.println(“Person: ” + personList);

输出:

Person: [com.conta.bean.Person@2b05039f, com.conta.bean.Person@61e717c2]

3.2.2、javaBean转JSON字符串-数组类型

代码:

Person p1 = new Person(“王迅”, 44);

Person p2 = new Person(“罗志祥”, 39);

List<Person> persons = new ArrayList<Person>();

persons.add(p1);

persons.add(p2);

String jsonString = JSONArray.toJSONString(persons);

System.out.println(jsonString);

输出:

[{“age”:44,”name”:”王迅”},{“age”:39,”name”:”罗志祥”}]

3.3、复杂json格式字符串与javaBean之间的转换

3.3.1、复杂json格式字符串转javaBean

代码:

Person person = JSONObject.parseObject(COMPLEX_JSON_STR, Person.class);

System.out.println(person);

输出:

com.conta.bean.Person@2b05039f

3.3.2、javaBean转复杂json格式字符串

代码:

Person p1 = new Person(“王迅”,44);

Person p2 = new Person(“罗志祥”,39);

List<Person> mates = new ArrayList<Person>();

mates.add(p1);

mates.add(p2);

Program program = new Program(“极限挑战”,”1270″);

Person person = new Person(“黄渤”,44,program,mates);

String jsonString = JSONObject.toJSONString(person);

System.out.println(jsonString);

输出:

{“age”:44,”mates”:[{“age”:44,”name”:”王迅”},{“age”:39,”name”:”罗志祥”}],”name”:”黄渤”,”program”:{“id”:”1270″,”programName”:”极限挑战”}}

还有一种是javaBean与JSONObject之间的转换,小编就在此偷下懒,不列了,喜欢的朋友可以试一下,真心好用。

文章来源:智云一二三科技

文章标题:「Java」提升工作效率,JSON字符串转换一句搞定——fastjson

文章地址:https://www.zhihuclub.com/185424.shtml

关于作者: 智云科技

热门文章

网站地图