找到 211 篇文章 关于 JSON 的
5K+ 次浏览
@JsonValue 注解在方法级别很有用。我们可以使用此注解从 Java 对象生成 JSON 字符串。如果我们想打印一个序列化对象,则覆盖 toString() 方法。但是使用 @JsonValue 注解,我们可以定义 Java 对象序列化的方式。语法@Target(value={ANNOTATION_TYPE, METHOD, FIELD}) @Retention(value=RUNTIME) public @interface JsonValueExampleimport com.fasterxml.jackson.annotation.JsonProperty; import com.fasterxml.jackson.annotation.JsonValue; import com.fasterxml.jackson.core.JsonProcessingException; import com.fasterxml.jackson.databind.ObjectMapper; import java.io.IOException; public class JsonValueAnnotationTest { public static void main(String args[]) throws Exception { ObjectMapper mapper = new ObjectMapper(); String jsonString = mapper.writeValueAsString(new Student()); System.out.println(jsonString); } } ... 阅读更多
228 次浏览
@JSON 注解由 JSONSerializer 类使用,用于在序列化过程中排除或包含字段。我们可以使用 JSONSerializer 类的 serialize() 方法对目标实例执行浅序列化。语法@Retention(value=RUNTIME) @Target(value={FIELD, TYPE, METHOD}) public @interface JSONExampleimport flexjson.JSONSerializer; import flexjson.JSON; public class JSONAnnotationTest { public static void main(String[] args) { JSONSerializer serializer = new JSONSerializer().prettyPrint(true); Employee emp = new Employee("Raja", "Ramesh", 30, "Hyderabad"); String jsonStr = serializer.serialize(emp); System.out.println(jsonStr); } } // Employee 类 class Employee { private String firstName, lastName, address; private ... 阅读更多
3K+ 次浏览
@JsonDeserialize 注解用于在将 JSON 反序列化为 Java 对象时声明自定义反序列化器。我们可以通过扩展 StdDeserializer 类并使用泛型类型 Employee 来实现自定义反序列化器,并且需要覆盖 StdDeserializer 类的 deserialize() 方法。语法@Target(value={ANNOTATION_TYPE, METHOD, FIELD, TYPE, PARAMETER}) @Retention(value=RUNTIME) public @interface JsonDeserialize在下面的程序中,我们可以使用 @JsonDeserialize 注解实现自定义反序列化器示例import java.io.*; import com.fasterxml.jackson.core.*; import com.fasterxml.jackson.databind.*; import com.fasterxml.jackson.databind.annotation.*; import com.fasterxml.jackson.databind.deser.std.*; public class JsonDeSerializeAnnotationTest { public static void main (String[] args) throws JsonProcessingException, IOException { Employee emp = new Employee(115, "Adithya"); ObjectMapper mapper = new ObjectMapper(); ... 阅读更多
2K+ 次浏览
@JsonSerialize 注解用于在序列化字段时声明自定义序列化器。我们可以通过扩展 StdSeralizer 类来实现自定义序列化器。并且需要覆盖 StdSerializer 类的 serialize() 方法。语法@Target(value={ANNOTATION_TYPE, METHOD, FIELD, TYPE, PARAMETER}) @Retention(value=RUNTIME) public @interface JsonSerialize在下面的程序中,我们可以使用 @JsonSerialize 注解实现自定义序列化器示例import java.io.*; import com.fasterxml.jackson.core.*; import com.fasterxml.jackson.databind.*; import com.fasterxml.jackson.databind.annotation.*; import com.fasterxml.jackson.databind.ser.std.*; public class JsonSerializeAnnotationTest { public static void main (String[] args) throws JsonProcessingException, IOException { Employee emp = new Employee(115, "Adithya", new String[] {"Java", "Python", "Scala"}); ObjectMapper mapper = new ... 阅读更多
1K+ 次浏览
JSON-lib API 是一个 Java 库,用于以 JSON 格式序列化和反序列化 Java Bean、映射、数组和集合。我们需要通过先将字符串转换为 JSON 对象,然后将其转换为 Java Bean 来将 JSON 字符串转换为 Bean。语法public static Object toBean(JSONObject jsonObject, Class beanClass)在下面的程序中,我们可以将 JSON 字符串转换为 Bean。示例import net.sf.json.JSONObject; import net.sf.json.JSONSerializer; public class ConvertJSONStringToBeanTest { public static void main(String[] args) { String jsonStr = "{\"firstName\": \"Adithya\", \"lastName\": \"Sai\", \"age\": 30, \"technology\": \"Java\"}"; JSONObject jsonObj = (JSONObject)JSONSerializer.toJSON(jsonStr); // 将字符串转换为 JSON 对象 ... 阅读更多
1K+ 次浏览
@JsonIdentityInfo 注解在 Jackson 库中对象具有父子关系时使用。 @JsonIdentityInfo 注解用于指示序列化和反序列化过程中的对象标识。ObjectIdGenerators.PropertyGenerator 是一个抽象占位符类,用于表示对象标识符来自 POJO 属性的情况。语法@Target(value={ANNOTATION_TYPE, TYPE, FIELD, METHOD, PARAMETER}) @Retention(value=RUNTIME) public @interface JsonIdentityInfoExampleimport java.util.*; import java.io.*; import com.fasterxml.jackson.annotation.JsonIdentityInfo; import com.fasterxml.jackson.annotation.ObjectIdGenerators; import com.fasterxml.jackson.databind.ObjectMapper; public class JsonIdentityInfoTest { public static void main(String[] args) throws IOException { ObjectMapper mapper = new ObjectMapper(); User user = new User(115, "Raja", "Ramesh"); ... 阅读更多
1K+ 次浏览
JSONArray 是一系列值,外部文本是用方括号括起来的字符串,用逗号分隔值,内部文本是一个具有 get() 和 opt() 方法的对象,我们需要通过索引访问这些值。element() 方法用于添加或替换这些值。数组是一个存储多个相同类型值的容器。它可以同时保存基本类型和对象引用。我们可以使用 JSONArray 类的 toArray() 方法将 JSON 数组转换为数组。此方法生成一个包含 JSONArray 内容的 Object[]。语法public Object[] toArray()示例import java.util.Arrays; import net.sf.json.JSONArray; public ... 阅读更多
323 次浏览
@Since 注解可以与 GsonBuilder 类的 setVersion() 方法一起使用。此注解可以应用于 Java 类中的字段,并接受浮点数作为参数。此参数表示字段序列化所在的版本号。同样可以应用于反序列化过程。语法@Documented @Retention(value=RUNTIME) @Target(value={FIELD, TYPE}) public @interface Since示例import com.google.gson.annotations.Since; import com.google.gson.Gson; import com.google.gson.GsonBuilder; public class GsonSinceAnnotationTest { public static void main(String[] args) { Employee emp = new Employee(); emp.setEmployeeName("Raja Ramesh"); emp.setEmployeeId(125); emp.setEmployeeTechnology("Java"); emp.setEmploeeAddress("Hyderabad"); System.out.println("Since 版本 ... 阅读更多
256 次浏览
@Until 注解可以与 GsonBuilder 类的 setVersion() 方法一起使用。此注解可以应用于 Java 类中的字段,并接受浮点数作为参数。此参数表示字段被序列化的版本号。@Until 注解可以管理 Web 服务中 JSON 类的版本控制。语法@Documented @Retention(value=RUNTIME) @Target(value={FIELD, TYPE}) public @interface Until示例import com.google.gson.annotations.Until; import com.google.gson.Gson; import com.google.gson.GsonBuilder; public class GsonUntilAnnotationTest { public static void main(String[] args) { Employee emp = new Employee(); emp.setEmployeeName("Adithya"); emp.setEmployeeId(115); emp.setEmployeeTechnology("Python"); emp.setEmploeeAddress("Pune"); ... 阅读更多
1K+ 次浏览
@JsonRootName 注解可用于将要序列化的对象包装在一个顶级元素中。我们可以将名称作为参数传递给 @JsonRootName 注解。我们可以使用 SerializationFeature 枚举的 "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 ... 阅读更多