fastjson参考
参考:http://doc.yaojieyun.com/www.runoob.com/w3cnote/java-json-instro.html
参考: http://doc.yaojieyun.com/www.runoob.com/w3cnote/fastjson-intro.html
序列化:JSON.toJSONString(person)将Java 对象转换为 JSON 字符串;
反序列化:JSON.parseObject() 将 JSON 字符串转换为 Java 对象;
@JSONField(name=“AGE”, serialize=false)
@JSONField(name = “DATE OF BIRTH”, deserialize=false)
Object转为其他类型
Map<String,Object> map = JsonUtils.parseObject(s, Map.class);
String accessToken = (String) map.get("access_token");
// Integer 转化为 Long
Long expiresIn = Long.valueOf(map.get("expires_in").toString());
fastjson和jackson gson和fastjson
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>fastjson</artifactId>
<version>1.2.28</version>
</dependency>
JSONObject jsonObject = JSONObject.parseObject(s);
String accessToken = jsonObject.getString("access_token");
long expiresIn = jsonObject.getLongValue("expires_in");
配置MessageConverter
字段配置优先级> 全局配置(MessageConverters注释的优先级 > application.yml)
@Data
public class TestPojo {
private String msg;
private String address;
@JsonInclude(JsonInclude.Include.ALWAYS)
private String data;
@JSONField(name="DATE OF BIRTH", format="yyyy-MM-dd HH:mm:ss", ordinal = 3)
private String time;
private Integer ok;
}
spring:
jackson:
date-format: yyyy-MM-dd HH:mm:ss
time-zone: GMT+8
default-property-inclusion: NON_NULL
MessageConverters注释的优先级大于application.yml
@Configuration
public class WebMvcConfig implements WebMvcConfigurer {
@Override
public void configureMessageConverters(List<HttpMessageConverter<?>> converters) {
converters.add(new ByteArrayHttpMessageConverter());
converters.add(new StringHttpMessageConverter());
converters.add(new ResourceHttpMessageConverter());
converters.add(new AllEncompassingFormHttpMessageConverter());
converters.add(jackson2HttpMessageConverter());
}
@Bean
public MappingJackson2HttpMessageConverter jackson2HttpMessageConverter() {
MappingJackson2HttpMessageConverter converter = new MappingJackson2HttpMessageConverter();
ObjectMapper mapper = new ObjectMapper();
//忽略未知属性
mapper.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false);
//日期格式转换
//mapper.setDateFormat(new SimpleDateFormat(DateUtils.DATE_PATTERN));
mapper.setTimeZone(TimeZone.getTimeZone("GMT+8"));
mapper.setDefaultPropertyInclusion(JsonInclude.Include.NON_NULL);
//Long类型转String类型
SimpleModule simpleModule = new SimpleModule();
simpleModule.addSerializer(Long.class, ToStringSerializer.instance);
simpleModule.addSerializer(Long.TYPE, ToStringSerializer.instance);
mapper.registerModule(simpleModule);
converter.setObjectMapper(mapper);
return converter;
}
}
idea快速实现pojo与json转换编辑
参考: https://editor.csdn.net/md/?articleId=130853605
Gson之toJson和fromJson方法
参考: https://blog.csdn.net/qq_43842093/article/details/121258638