0.添加依赖
<dependency> <groupId>com.fasterxml.jackson.core</groupId> <artifactId>jackson-databind</artifactId> <version>2.11.2</version> </dependency>
1.实体类
package com.cat.domain; public class Person { public String name; public String sex; public int age; public String getName() { return name; } public void setName(String name) { this.name = name; } public String getSex() { return sex; } public void setSex(String sex) { this.sex = sex; } public int getAge() { return age; } public void setAge(int age) { this.age = age; } @Override public String toString() { return "Person{" + "name='" + name + '\'' + ", sex='" + sex + '\'' + ", age=" + age + '}'; } }
2. list转json
我们写一个test类或者在Controller中直接构造,本文是使用的是直接在Controller中调用。
package com.cat.controller; import com.cat.domain.Person; import com.fasterxml.jackson.databind.ObjectMapper; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.ResponseBody; import org.springframework.web.servlet.ModelAndView; import java.io.IOException; import java.util.ArrayList; import java.util.List; @Controller @RequestMapping(produces="text/html;charset=UTF-8") public class IndexController { List<Person> PersonList =new ArrayList<>(); //返回json格式 @RequestMapping(value = "/hello2" ) @ResponseBody public Object hello2() throws IOException { Person Person4 = new Person(); Person Person5 = new Person(); Person Person6 = new Person(); Person4.name ="王晓红"; Person5.name ="王晓绿"; Person6.name ="王晓蓝"; Person4.age =13; Person5.age =14; Person6.age =16; Person4.sex ="男"; Person5.sex ="女"; Person6.sex ="男"; PersonList.add(Person4); PersonList.add(Person5); PersonList.add(Person6); System.out.println(PersonList); ObjectMapper mapper = new ObjectMapper(); String str = mapper.writeValueAsString(PersonList); System.out.println(str); return str; } }
可以看出,控制台中输出了两端,第一段是list对象,第二段是json格式。
3.json转对象(反序列化)
我们这次自己编写一个类用来测试。
import com.cat.domain.Person; import com.fasterxml.jackson.databind.ObjectMapper; import java.util.Arrays; import java.util.List; public class main { public static void main(String[] args) throws Exception { String json = "[{\"name\":\"王晓红\",\"sex\":\"男\",\"age\":13},{\"name\":\"王晓绿\",\"sex\":\"女\",\"age\":14},{\"name\":\"王晓蓝\",\"sex\":\"男\",\"age\":16}]"; ObjectMapper mapper = new ObjectMapper(); // json 转数组对象 Person[] person = mapper.readValue(json,Person[].class); for(Person person1:person) System.out.println(person1); } }
4.json转List(反序列化)
import com.cat.domain.Person; import com.fasterxml.jackson.databind.ObjectMapper; import java.util.Arrays; import java.util.List; public class main { public static void main(String[] args) throws Exception { String json = "[{\"name\":\"王晓红\",\"sex\":\"男\",\"age\":13},{\"name\":\"王晓绿\",\"sex\":\"女\",\"age\":14},{\"name\":\"王晓蓝\",\"sex\":\"男\",\"age\":16}]"; ObjectMapper mapper = new ObjectMapper(); // json 转List对象 List<Person> person2 = Arrays.asList(mapper.readValue(json,Person[].class)); System.out.println(person2); } }
返回目录:开发与教程