如何使用 Java 中的 Jackson 更改 JSON 中的字段名称?
javajsonobject oriented programmingprogramming
Jackson 注释 @JsonProperty 在 JSON 的 序列化 或 反序列化 期间用于属性或方法。它需要一个可选的 ‘name’ 参数,当属性名称与 JSON 中的 ‘key’ name 不同时,该参数非常有用。默认情况下,如果键名与属性名匹配,则值将映射到属性值。
在下面的示例中,我们可以使用 @JsonProperty 注释 在 JSON 中更改字段名称。
示例
import java.io.IOException; import com.fasterxml.jackson.databind.*; import com.fasterxml.jackson.annotation.JsonProperty; public class JsonPropertyAnnotationTest { public static void main(String[] args) throws IOException { ObjectMapper mapper = new ObjectMapper(); mapper.enable(SerializationFeature.INDENT_OUTPUT); User user = new User("Sai", "Adithya", "9959984000", "0402358700"); String data = mapper.writeValueAsString(user); System.out.println(data); } } // User class class User { @JsonProperty("first-name") public String firstName; @JsonProperty("last-name") public String lastName; @JsonProperty("mobile-phone") public String mobilePhone; @JsonProperty("home_phone") public String workPhone; public User(String firstName, String lastName, String mobilePhone, String workPhone) { super(); this.firstName = firstName; this.lastName = lastName; this.mobilePhone = mobilePhone; this.workPhone = workPhone; } }
输出
{ "first-name" : "Sai", "last-name" : "Adithya", "mobile-phone" : "9959984000", "home_phone" : "0402358700" }