在 Java 中使用 Jackson API @JsonRawValue 注解有什么用?
@JsonRawValue 注解可用于方法和字段,以按声明方式序列化字段或属性。例如,如果我们的 Java 类中有一个 String 字段,则 JSON 值将用引号(“ ")括起来。但是,当我们使用 @JsonRawValue 注解注释字段时,Jackson 库会省略引号。
语法
@Target(value={ANNOTATION_TYPE,METHOD,FIELD}) @Retention(value=RUNTIME) public @interface JsonRawValue
在下例中,empAddress 字段是一个 JSON 字符串。此 JSON 字符串作为 Employee 对象的最终 JSON 字符串的一部分序列化。
示例
import com.fasterxml.jackson.annotation.JsonRawValue; import com.fasterxml.jackson.databind.ObjectMapper; import com.fasterxml.jackson.core.JsonProcessingException; public class JsonRawValueAnnotationTest { public static void main(String args[]) throws JsonProcessingException { ObjectMapper mapper = new ObjectMapper(); String jsonString = mapper.writerWithDefaultPrettyPrinter().writeValueAsString(new Employee()); System.out.println(jsonString); } } // Employee class class Employee { public int empId = 115; public String empName = "Sai Chaitanya"; @JsonRawValue public String empAddress = "{\"doorNumber\": 1118, \"street\": \"IDPL Colony\", " + "\"city\": \"Hyderabad\"}"; }
输出
{ "empId" : 115, "empName" : "Sai Chaitanya", "empAddress" : {"doorNumber": 1118, "street": "IDPL Colony", "city": "Hyderabad"} }
广告