springboot中json转换默认使用的是jackson包,通过spring-boot-starter-web依赖的
1 在属性上添加注解@JsonFormat(pattern = "yyyy-MM-dd HH-mm-ss")
可以修改对象转成json后的时间格式
2 在属性上添加注解 @JsonInclude(JsonInclude.Include.NON_NULL)
如果该属性为null,则不序列化
Include.Include.ALWAYS 默认
Include.NON_DEFAULT 属性为默认值不序列化
Include.NON_EMPTY 属性为 空("") 或者为 NULL 都不序列化
Include.NON_NULL 属性为NULL 不序列化
3 在属性上添加注解 @JsonProperty(
4 在属性上添加注解@JsonIgnore 会忽略该属性,不会向前台返回该属性
import java.io.IOException; import java.util.List; import java.util.Map; import org.springframework.lang.Nullable; import com.fasterxml.jackson.core.JsonProcessingException; import com.fasterxml.jackson.core.type.TypeReference; import com.fasterxml.jackson.databind.ObjectMapper; public class JsonUtils { public static final ObjectMapper mapper = new ObjectMapper(); /** * 对象转换为json字符串 * @param obj * @return */ @Nullable public static String toString(Object obj) { if (obj == null) { return null; } if (obj.getClass() == String.class) { return (String) obj; } try { return mapper.writeValueAsString(obj); } catch (JsonProcessingException e) { return null; } } @Nullable public static <T> T toBean(String json, Class<T> tClass) { try { return mapper.readValue(json, tClass); } catch (IOException e) { return null; } } @Nullable public static <E> List<E> toList(String json, Class<E> eClass) { try { return mapper.readValue(json, mapper.getTypeFactory().constructCollectionType(List.class, eClass)); } catch (IOException e) { return null; } } @Nullable public static <K, V> Map<K, V> toMap(String json, Class<K> kClass, Class<V> vClass) { try { return mapper.readValue(json, mapper.getTypeFactory().constructMapType(Map.class, kClass, vClass)); } catch (IOException e) { return null; } } @Nullable public static <T> T nativeRead(String json, TypeReference<T> type) { try { return mapper.readValue(json, type); } catch (IOException e) { return null; } } class User{ private String name; private Integer 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; } public User() { super(); } } public static void main(String[] args) { String json="{"namge":"zhuxinjun","age":"21"}"; Map<String, String> map = toMap(json, String.class, String.class); System.out.println("map:"+map); String j="[{"namge":"zhuxinjun","age":"21"},{"namge":"yangyang","age":"32"}]"; List<Map<String, String>> maps = nativeRead(j, new TypeReference<List<Map<String, String>>>() { }); for(Map<String,String> map1:maps){ System.out.println("map1"+map1); } } }