找到 211 篇文章 关于 JSON
3K+ 浏览量
Gson 的 @Expose 注解可以用来标记一个字段是否需要暴露(包含或不包含)以进行序列化或反序列化。@Expose 注解可以接受两个参数,每个参数都是一个布尔值,可以取 true 或 false。为了让 Gson 对 @Expose 注解做出反应,我们必须使用 GsonBuilder 类创建一个 Gson 实例,并需要调用 excludeFieldsWithoutExposeAnnotation() 方法,它配置 Gson 在序列化或反序列化时排除所有没有 Expose 注解的字段。语法public GsonBuilder excludeFieldsWithoutExposeAnnotation()示例import com.google.gson.*; import com.google.gson.annotations.*; public class JsonExcludeAnnotationTest { ... 阅读更多
2K+ 浏览量
Gson 库可用于将 JSON 字符串解析为树模型。我们可以使用 JsonParser 将 JSON 字符串解析为 JsonElement 类型的树模型。JsonElement 的 getAsJsonObject() 方法可用于将元素作为 JsonObject 获取,而 JsonElement 的 getAsJsonArray() 方法可用于将元素作为 JsonArray 获取。语法public JsonObject getAsJsonObject() public JsonArray getAsJsonArray()示例import java.util.List; import com.google.gson.*; public class JsonTreeModelTest { public static void main(String args[]){ String jsonStr = "{\"name\":\"Adithya\", \"age\":20, \"year of passout\":2005, \"subjects\": [\"MATHEMATICS\", \"PHYSICS\", \"CHEMISTRY\"]}"; JsonParser jsonParser = new JsonParser(); JsonElement jsonElement = jsonParser.parse(jsonStr); ... 阅读更多
4K+ 浏览量
Jackson 注解 @JsonProperty 用于在 JSON 的序列化或反序列化期间使用在属性或方法上。它接受一个可选的“name”参数,在属性名称与 JSON 中的“key”名称不同时很有用。默认情况下,如果键名称与属性名称匹配,则值将映射到属性值。在下面的示例中,我们可以使用 @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 ... 阅读更多
2K+ 浏览量
Jackson 是一个用于 Java 的库,它具有非常强大的数据绑定功能,并提供了一个框架来将自定义 Java 对象序列化为 JSON,并将 JSON 反序列化回 Java 对象。Jackson 库提供了 @JsonInclude 注解,该注解根据序列化期间的值控制整个类的序列化或其各个字段的序列化。@JsonInclude 注解包含以下两个值Include.NON_NULL:表示只有值不为空的属性才会包含在 JSON 中。Include.NON_EMPTY:表示只有非空属性才会包含在 JSON 中示例import com.fasterxml.jackson.annotation.*; import com.fasterxml.jackson.annotation.JsonInclude.Include; import com.fasterxml.jackson.core.*; import com.fasterxml.jackson.databind.*; public class IgnoreNullAndEmptyFieldTest ... 阅读更多
259 浏览量
Flexjson 是一个轻量级的 Java 库,用于以 JSON 格式序列化和反序列化 Java bean、映射、数组和集合。JSONSerializer 是执行 Java 对象到 JSON 序列化的主要类,默认情况下执行浅序列化。我们可以使用 JSONSerializer 类的 prettyPrint(boolean prettyPrint) 方法来美化打印 JSON。语法public JSONSerializer prettyPrint(boolean prettyPrint)在下面的程序中,使用 flexjson 库美化打印 JSON 示例import flexjson.*; public class PrettyPrintJSONTest { public static void main(String[] args) { JSONSerializer serializer = new JSONSerializer().prettyPrint(true); // 美化打印 Employee emp = new Employee("Vamsi", "105", "Python Developer", "Python", "Pune"); String jsonStr = ... 阅读更多
4K+ 浏览量
Flexjson 是一个轻量级的库,用于将 Java 对象序列化和反序列化为 JSON 格式,允许对象进行深度和浅层复制。为了使用 flexjon 运行 Java 程序,我们需要导入 flexjson 包。我们可以使用 JSONDeserializer 类的 deserialize() 方法将 JSON 反序列化为 Java 对象,它接收 json 字符串作为输入,并从该 json 表示生成静态类型对象图。默认情况下,它使用 json 数据中的类属性将非类型通用 json 数据映射到特定的 Java 类型。语法public T deserialize(String input)在下面的程序中,反序列化... 阅读更多
2K+ 浏览量
在将 JSON 字符串解析为或从 Java 对象解析时,Gson 默认尝试通过调用默认构造函数来创建 Java 类的实例。如果 Java 类不包含默认构造函数,或者我们希望在创建 Java 对象时进行一些初始配置,则需要创建并注册我们自己的实例创建器。我们可以使用 InstanceCreator 接口在 Gson 中创建自定义实例创建器,并且需要实现 createInstance(Type type) 方法。语法T createInstance(Type type)示例import java.lang.reflect.Type; import com.google.gson.*; public class CustomInstanceCreatorTest { public static void main(String args[]) { GsonBuilder gsonBuilder = new GsonBuilder(); ... 阅读更多
7K+ 浏览量
默认情况下,Gson 对象不会将具有空值的字段序列化为 JSON。如果 Java 对象中的字段为空,Gson 会将其排除。我们可以通过 GsonBuilder 类强制 Gson 序列化空值。我们需要在创建 Gson 对象之前在 GsonBuilder 实例上调用 serializeNulls() 方法。一旦调用了 serializeNulls(),由 GsonBuilder 创建的 Gson 实例就可以在序列化的 JSON 中包含空字段。语法public GsonBuilder serializeNulls()示例import com.google.gson.*; import com.google.gson.annotations.*; public class NullFieldTest { public static void main(String args[]) { GsonBuilder builder = new GsonBuilder(); builder.serializeNulls(); ... 阅读更多
浏览量:108
Gson 库为其读取和写入的 Java 对象提供了一个简单的版本控制系统,并且还为版本控制概念提供了名为 @Since 的注解 @Since(versionnumber)。我们可以使用 GsonBuilder().setVersion() 方法创建具有版本控制功能的 Gson 实例。如果我们像 setVersion(2.0) 那样提及,则表示所有版本号为 2.0 或更小的字段都有资格进行解析。语法public GsonBuilder setVersion(double ignoreVersionsAfter)示例import com.google.gson.*; import com.google.gson.annotations.*; public class VersionSupportTest { public static void main(String[] args) { Person person = new Person(); person.firstName = "Raja"; person.lastName = "Ramesh"; Gson gson1 = new GsonBuilder().setVersion(1.0).setPrettyPrinting().create(); ... 阅读更多