在 Java 中使用 Jackson 的 @JsonRootName 注释的重要性?

javajsonobject oriented programmingprogramming

@JsonRootName 注释可用于包装要使用顶级元素进行序列化的对象。我们可以将名称作为参数传递给 @JsonRootName 注释。我们可以使用 SerializationFeatureenum 的"WRAP_ROOT_VALUE"功能,该功能可以启用,以使根值包装在单个属性 JSON 对象中,其中键是根名称。

示例

import com.fasterxml.jackson.annotation.JsonRootName;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.fasterxml.jackson.core.JsonProcessingException;
import com.fasterxml.jackson.databind.SerializationFeature;

public class JsonRootNameAnnotationTest {
   public static void main(String args[]) throws JsonProcessingException {
      ObjectMapper mapper = new ObjectMapper();
      String jsonString = mapper.enable(SerializationFeature.WRAP_ROOT_VALUE).writeValueAsString(new Employee());
      System.out.println(jsonString);
   }
}

@JsonRootName(value = "user")class Employee {
   public int empId = 125;
   public String empName = "Raja Ramesh";
}

输出

{"user":{"empId":125,"empName":"Raja Ramesh"}}

相关文章