fastjson的maven依赖,导入pom文件中
<!-- https://mvnrepository.com/artifact/com.alibaba/fastjson -->
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>fastjson</artifactId>
<version>1.2.76</version>
</dependency>
com.alibaba.fastjson包最常用的两个类JSON、JSONObject两个类。JSONObject继承于JSON父类。
package com.test.lyt.pojo;
import org.springframework.stereotype.Component;
@Component
public class Dog {
private String name;
private Integer age;
public Dog() {
}
public Dog(String name, Integer age) {
this.name = name;
this.age = age;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public Integer getAge() {
return age;
}
public void setAge(Integer age) {
this.age = age;
}
@Override
public String toString() {
return "Dog{" +
"name='" + name + '\'' +
", age=" + age +
'}';
}
}
package com.test.lyt.json;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import com.test.lyt.pojo.Dog;
import java.util.*;
/**
* @author lyt
* @description
* @date 2021/9/13 9:14
*/
public class StudyJson {
/**
* 序列化:实体类 序列化 为Json的字符串形式
*/
public void toJsonString() {
Dog dog = new Dog("luke", 1);
System.out.println("dog实体类:" + dog);
String s = JSON.toJSONString(dog);
System.out.println("序列化:实体类 序列化 为Json的字符串形式");
System.out.println("toJsonString方法:s=" + s + "\n");
}
/**
* 带转义的字符串String 反序列化 为Json对象
*/
public void parseJsonObject() {
String s = "{\"name\":\"mary\",\"age\":105}";
JSONObject jsonObject = JSON.parseObject(s);
System.out.println("带转义的字符串String 反序列化 为Json对象");
System.out.println("parseJsonObject方法:jsonObject=" + jsonObject + "\n");
}
/**
* 带转义的字符串String 反序列化 为javaBean对象
*/
public void parseBeanObject() {
String s = "{\"name\":\"mary\",\"age\":105}";
Dog dog = JSON.parseObject(s, Dog.class);
System.out.println("带转义的字符串String 反序列化 为javaBean对象");
System.out.println("parseBeanObject方法:dog=" + dog.getName() + "," + dog.getAge() + "\n");
}
/**
* 将javaBean 转化 为json对象
*/
public void javabeanJsonObject() {
Dog hello = new Dog("hello", 4);
JSONObject jsonObject = (JSONObject) JSON.toJSON(hello);
System.out.println("将javaBean 转化 为json对象");
System.out.println("javabeanJsonObject方法:jsonObject=" + jsonObject + "\n");
}
/**
* json对象 转换为 实体对象
*/
public void jsonTOBean() {
String s = "{\"name\":\"mary\",\"age\":105}";
JSONObject object = JSON.parseObject(s);
Integer age = object.getInteger("age");
String name = object.getString("name");
Dog dog = new Dog(name, age);
System.out.println("json对象 转换为 实体对象");
System.out.println("jsonTOBean方法:dog=" + dog + "\n");
}
/**
* 将string转为list后转为json
* 可以使用list的add函数将需要的字符串拼接即可,但是这个只能使用JSONArray
*/
public void stringListJson() {
// String[] 转 List
// String[] str = {"01", "02"};
// List<String> listStr = Arrays.asList(str);
List list = new ArrayList();
list.add("username");
list.add("age");
list.add("sex");
JSONArray list_objects = new JSONArray();
list_objects.add(list);
System.out.println("将string转为list后转为json");
System.out.println("StringListJson方法:list_objects=" + list_objects + "\n");
}
/**
* 将string转为map后转为json
*/
public void stringMapJson() {
Map map = new HashMap();
map.put("1", "abc");
map.put("2", "efg");
JSONArray map_objects = new JSONArray();
map_objects.add(map);
System.out.println("将string转为map后转为json");
System.out.println("stringMapJson方法:map_objects=" + map_objects + "\n");
}
/**
* map转成Json格式的String
* Json格式的String[map] 转成 map
*/
public void intMapJsonString() {
System.out.println("map转成Json格式的String");
Map<Integer, Double> map = new HashMap<>();
map.put(1, 1.1);
map.put(2, 2.2);
System.out.println("map=" + map);
String s = JSON.toJSONString(map);
System.out.println("Json格式的String s=" + s);
Map map1 = JSON.parseObject(s, Map.class);
System.out.println("Json格式的String s转换后的map1=" + map1 + "\n");
}
/**
* list转成Json格式的String
*/
public void intListJsonString() {
System.out.println("list转成Json格式的String");
List<Dog> list = new ArrayList<>();
list.add(new Dog("bake", 2));
list.add(new Dog("black", 4));
System.out.println("list=" + list);
String s = JSON.toJSONString(list);
System.out.println("Json格式的String s=" + s);
List list1 = JSON.parseObject(s, List.class);
System.out.println("Json格式的String s转换后的list1=" + list1);
JSONArray objects = JSON.parseArray(s);
System.out.println("json格式: " + objects);
List<Dog> dogs = JSON.parseArray(s, Dog.class);
System.out.println("遍历dogs");
dogs.forEach(x -> System.out.println(x.getName() + " " + x.getAge()));
}
/**
* @param args
*/
public static void main(String[] args) {
StudyJson studyJson = new StudyJson();
studyJson.toJsonString();
studyJson.parseBeanObject();
studyJson.parseJsonObject();
studyJson.javabeanJsonObject();
studyJson.jsonTOBean();
studyJson.stringListJson();
studyJson.stringMapJson();
studyJson.intMapJsonString();
studyJson.intListJsonString();
}
}
控制台输出:
dog实体类:Dog{name='luke', age=1}
序列化:实体类 序列化 为Json的字符串形式
toJsonString方法:s={"age":1,"name":"luke"}带转义的字符串String 反序列化 为javaBean对象
parseBeanObject方法:dog=mary,105带转义的字符串String 反序列化 为Json对象
parseJsonObject方法:jsonObject={"name":"mary","age":105}将javaBean 转化 为json对象
javabeanJsonObject方法:jsonObject={"name":"hello","age":4}json对象 转换为 实体对象
jsonTOBean方法:dog=Dog{name='mary', age=105}将string转为list后转为json
StringListJson方法:list_objects=[["username","age","sex"]]将string转为map后转为json
stringMapJson方法:map_objects=[{"1":"abc","2":"efg"}]map转成Json格式的String
map={1=1.1, 2=2.2}
Json格式的String s={1:1.1,2:2.2}
Json格式的String s转换后的map1={1=1.1, 2=2.2}list转成Json格式的String
list=[Dog{name='bake', age=2}, Dog{name='black', age=4}]
Json格式的String s=[{"age":2,"name":"bake"},{"age":4,"name":"black"}]
Json格式的String s转换后的list1=[{"name":"bake","age":2}, {"name":"black","age":4}]
json格式: [{"name":"bake","age":2},{"name":"black","age":4}]
遍历dogs
bake 2
black 4
JSON处理对接前端端口数据类型