一般前后端开发都是使用json格式的字符串进行交互的,所以javaBean对象转化为json格式字符串和json格式字符串转化为javaBean对象显的很有必要。
下面介绍两种方法:
一.使用Jackson工具类
1.pom依赖:
<!--jackson 2.x版本依赖-->
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-annotations</artifactId>
<version>2.8.1</version>
</dependency>
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-core</artifactId>
<version>2.8.6</version>
</dependency>
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-databind</artifactId>
<version>2.8.6</version>
</dependency>
<!--junit依赖-->
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.12</version>
</dependency>
2.程序代码:
package com.john.json;
import com.fasterxml.jackson.databind.ObjectMapper;
import org.junit.Test;
import java.io.IOException;
public class TestJackson {
@Test
public void testObjAndJson() throws IOException {
Dog dog = new Dog();
dog.setName("樱桃");
dog.setAge(1);
dog.setFood("小米");
//创建Jackson高级对象
ObjectMapper mapper = new ObjectMapper();
//对象转换为对应的json格式字符串
String json = mapper.writeValueAsString(dog);
System.out.println(json);
//json格式字符串转换为对应的对象
Dog dogBack = mapper.readValue(json, Dog.class);
System.out.println(dogBack.getName()+"--"+dogBack.getAge()+"--"+dogBack.getFood());
}
}
二.使用Gson工具类
1.pom依赖:
<!--gson依赖-->
<dependency>
<groupId>com.google.code.gson</groupId>
<artifactId>gson</artifactId>
<version>2.2.4</version>
</dependency>
<!--junit依赖-->
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.12</version>
</dependency>
2.程序代码:
package com.john.json;
import com.google.gson.Gson;
import org.junit.Test;
public class TestGson {
@Test
public void testObjAndJson() {
Dog dog = new Dog();
dog.setName("妞妞");
dog.setAge(3);
dog.setFood("大米");
//创建gson对象
Gson gson = new Gson();
//对象转化为对应的json格式字符串
String dogJson = gson.toJson(dog);
System.out.println(dogJson);
//json格式字符串转换为对应的对象
Dog dogBack = gson.fromJson(dogJson, Dog.class);
System.out.println(dogBack.getName()+"--"+dogBack.getAge()+"--"+dogBack.getFood());
}
}