@JsonProperty
这个注解提供了序列化和反序列化过程中该java属性所对应的名称
@JsonAlias
这个注解只只在反序列化时起作用,指定该java属性可以接受的更多名称
JsonAlias 反序列化才可以接收 读
JsonProperty 序列化反序列化都可以接收 读 写
测试代码
package com.astutephone.user.domain.model.pojo;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;
import com.fasterxml.jackson.annotation.JsonAlias;
import com.fasterxml.jackson.annotation.JsonProperty;
import com.fasterxml.jackson.core.JsonProcessingException;
import com.fasterxml.jackson.databind.ObjectMapper;
import lombok.Data;
import java.util.HashMap;
import java.util.Map;
/**
*/
@Data
public class A {
private String name;
//@JsonAlias("eat.meat")
@JsonProperty("eat.meat")
private String meat;
public static void main(String[] args) throws JsonProcessingException {
Map<String,String> a = new HashMap<>();
a.put("name","11");
a.put("eat.meat","aa");
String toJSON = JSONObject.toJSONString(a);
ObjectMapper objectMapper= new ObjectMapper();
A user = objectMapper.readValue(toJSON, A.class);
System.out.println(JSON.toJSONString(user));
A b= new A();
b.setName("1");
b.setMeat("2");
String s = objectMapper.writeValueAsString(b);
System.out.println(s);
}
}