java jackson 之间的转换

1. java jackson 转换

  a.需要导入jar

<dependency>
    <groupId>com.fasterxml.jackson.core</groupId>
    <artifactId>jackson-core</artifactId>
    <version>2.9.7</version>
</dependency>
<dependency>
    <groupId>com.fasterxml.jackson.core</groupId>
    <artifactId>jackson-annotations</artifactId>
    <version>2.9.7</version>
</dependency>
<dependency>
    <groupId>com.fasterxml.jackson.core</groupId>
    <artifactId>jackson-databind</artifactId>
    <version>2.9.7</version>
</dependency>

b.相互转换

//数据准备
	List<Student> list=new ArrayList<Student>();
	list.add(new Student(1,1000d,"旅游",new Date()));
	list.add(new Student(2,1500d,"玩电脑游戏",new Date()));
	list.add(new Student(3,3000d,"看电影",new Date()));
	Student student=new Student(1,1000d,"旅游",new Date());
   //ObjectMapper是JSON操作的核心,Jackson的所有JSON操作都是在ObjectMapper中实现。
	ObjectMapper mapper=new ObjectMapper();
	
	//A.javaBean---->JSON字符串
	    //1.writeValueAsString
	     String json1 = mapper.writeValueAsString(student);
	
	    //2.writeValue
	    StringWriter writer = new StringWriter();
	    mapper.writeValue(writer, student);
	   String string = writer.toString();
	
	//B.JSON字符串----》javaBean
	Student stu = mapper.readValue(json1, Student.class);
	
	  
	//C.list---->JSON字符串
	  String json2 = mapper.writeValueAsString(list);
	  System.out.println(json2);

	 //D.JSON字符串---》list
	     //1.JavaType
	     JavaType javaType = mapper.getTypeFactory().constructParametricType(List.class, Student.class);
	    List<Student> stuList=(List<Student>) mapper.readValue(json2, javaType);
	    System.out.println(stuList);

          //2.TypeReference
	      List<Student> readValue = mapper.readValue(json2, new TypeReference<List<Student>>() {});
	    System.out.println(readValue);
	

猜你喜欢

转载自blog.csdn.net/qq_29393273/article/details/84570304