新增jackson使用用例
This commit is contained in:
		| @@ -1,45 +0,0 @@ | ||||
| <?xml version="1.0" encoding="UTF-8"?> | ||||
| <project xmlns="http://maven.apache.org/POM/4.0.0" | ||||
|          xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" | ||||
|          xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> | ||||
|     <modelVersion>4.0.0</modelVersion> | ||||
|  | ||||
|     <groupId>com.heibaiying</groupId> | ||||
|     <artifactId>jackson-samples</artifactId> | ||||
|     <version>1.0-SNAPSHOT</version> | ||||
|     <build> | ||||
|         <plugins> | ||||
|             <plugin> | ||||
|                 <groupId>org.apache.maven.plugins</groupId> | ||||
|                 <artifactId>maven-compiler-plugin</artifactId> | ||||
|                 <configuration> | ||||
|                     <source>8</source> | ||||
|                     <target>8</target> | ||||
|                 </configuration> | ||||
|             </plugin> | ||||
|         </plugins> | ||||
|     </build> | ||||
|  | ||||
|     <dependencies> | ||||
|         <!--jackson 依赖包 --> | ||||
|         <dependency> | ||||
|             <groupId>com.fasterxml.jackson.core</groupId> | ||||
|             <artifactId>jackson-databind</artifactId> | ||||
|             <version>2.9.8</version> | ||||
|         </dependency> | ||||
|         <dependency> | ||||
|             <groupId>org.projectlombok</groupId> | ||||
|             <artifactId>lombok</artifactId> | ||||
|             <version>1.18.4</version> | ||||
|             <scope>provided</scope> | ||||
|         </dependency> | ||||
|         <dependency> | ||||
|             <groupId>junit</groupId> | ||||
|             <artifactId>junit</artifactId> | ||||
|             <version>4.12</version> | ||||
|             <scope>test</scope> | ||||
|         </dependency> | ||||
|     </dependencies> | ||||
|  | ||||
|  | ||||
| </project> | ||||
| @@ -1,25 +0,0 @@ | ||||
| package com.heibaiying.bean; | ||||
|  | ||||
| import lombok.AllArgsConstructor; | ||||
| import lombok.Data; | ||||
| import lombok.NoArgsConstructor; | ||||
|  | ||||
| import java.util.Date; | ||||
|  | ||||
| /** | ||||
|  * @author : heibaiying | ||||
|  */ | ||||
|  | ||||
| @Data | ||||
| @AllArgsConstructor | ||||
| @NoArgsConstructor | ||||
| public class User { | ||||
|  | ||||
|     private String name; | ||||
|  | ||||
|     private int age; | ||||
|  | ||||
|     private float salary; | ||||
|  | ||||
|     private Date birthday; | ||||
| } | ||||
| @@ -1,71 +0,0 @@ | ||||
| package com.heibaiying.jackson; | ||||
|  | ||||
| import com.fasterxml.jackson.core.JsonProcessingException; | ||||
| import com.fasterxml.jackson.core.type.TypeReference; | ||||
| import com.fasterxml.jackson.databind.ObjectMapper; | ||||
|  | ||||
| import java.io.IOException; | ||||
| import java.util.HashMap; | ||||
| import java.util.List; | ||||
| import java.util.Map; | ||||
| import java.util.stream.Collectors; | ||||
|  | ||||
| /** | ||||
|  * @author : heibaiying | ||||
|  * @description : jackson 的使用 | ||||
|  */ | ||||
| public class JacksonUtils { | ||||
|  | ||||
|     private static ObjectMapper mapper = new ObjectMapper(); | ||||
|  | ||||
|     /*** | ||||
|      * spring 对象转换为json | ||||
|      */ | ||||
|     public static String objectToJson(Object object) throws JsonProcessingException { | ||||
|         return mapper.writeValueAsString(object); | ||||
|     } | ||||
|  | ||||
|     /*** | ||||
|      * spring json 转换为对象 | ||||
|      */ | ||||
|     public static <T> T jsonToBean(String json, Class<T> valueType) throws IOException { | ||||
|         return mapper.readValue(json, valueType); | ||||
|     } | ||||
|  | ||||
|     /*** | ||||
|      * spring json 转换为List | ||||
|      */ | ||||
|     public static <T> List<T> jsonToList(String json, Class<T> valueType) throws IOException { | ||||
|         List<Map<String, Object>> list = mapper.readValue(json, new TypeReference<List<T>>() { | ||||
|         }); | ||||
|         return list.stream().map(value -> mapToBean(value, valueType)).collect(Collectors.toList()); | ||||
|     } | ||||
|  | ||||
|     /*** | ||||
|      * spring json 转换为Map (map的value为基本类型) | ||||
|      */ | ||||
|     public static Map jsonToMap(String json) throws IOException { | ||||
|         return mapper.readValue(json, Map.class); | ||||
|     } | ||||
|  | ||||
|     /*** | ||||
|      * spring json 转换为Map (map的value为bean) | ||||
|      */ | ||||
|     public static <T> Map<String, T> jsonToMap(String json, Class<T> clazz) throws IOException { | ||||
|         Map<String, Map<String, Object>> map = mapper.readValue(json, | ||||
|                 new TypeReference<Map<String, T>>() { | ||||
|                 }); | ||||
|         Map<String, T> result = new HashMap<>(); | ||||
|         for (Map.Entry<String, Map<String, Object>> entry : map.entrySet()) { | ||||
|             result.put(entry.getKey(), mapToBean(entry.getValue(), clazz)); | ||||
|         } | ||||
|         return result; | ||||
|     } | ||||
|  | ||||
|     /*** | ||||
|      *  map 转换为 bean | ||||
|      */ | ||||
|     public static <T> T mapToBean(Map map, Class<T> valueType) { | ||||
|         return mapper.convertValue(map, valueType); | ||||
|     } | ||||
| } | ||||
| @@ -1,21 +0,0 @@ | ||||
| import com.fasterxml.jackson.core.JsonProcessingException; | ||||
| import com.fasterxml.jackson.core.type.TypeReference; | ||||
| import com.fasterxml.jackson.databind.ObjectMapper; | ||||
| import com.heibaiying.bean.User; | ||||
| import com.heibaiying.jackson.JacksonUtils; | ||||
| import org.junit.Test; | ||||
|  | ||||
| import java.io.IOException; | ||||
| import java.util.*; | ||||
|  | ||||
| /** | ||||
|  * @author : heibaiying | ||||
|  * @description : jackson 测试 | ||||
|  */ | ||||
| public class JacksonTests { | ||||
|  | ||||
|     @Test | ||||
|     public void test() throws IOException { | ||||
|          | ||||
|     } | ||||
| } | ||||
		Reference in New Issue
	
	Block a user