找到 211 篇文章 适用于 JSON

如何在 Java 中使用 @Expose 注解从 JSON 中排除字段?

raja
更新于 2020 年 7 月 6 日 06:52:49

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 {   ... 阅读更多

我们如何在 Java 中使用 Gson 流式 API 读取和写入文件?

raja
更新于 2020 年 7 月 6 日 06:24:19

911 次查看

我们可以使用 Gson 流式 API 读取和写入文件,它基于顺序读取和写入标准。JsonWriter 和 JsonReader 是为流式写入和读取而在 Streaming API 中构建的核心类。JsonWriter 将 JSON 编码的值一次写入一个令牌到流中。该流包含文字值(字符串、数字、布尔值和空值)以及对象和数组的开始和结束分隔符,而 JsonReader 将 JSON 编码的值读取为令牌流。此流包含文字值(字符串、数字、布尔值和空值)以及对象和数组的开始和结束分隔符。该 ... 阅读更多

如何在 Java 中将 JSON 解析为 Gson 树模型?

raja
更新于 2020 年 7 月 6 日 06:04:59

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); ... 阅读更多

如何在 Java 中使用 Jackson 更改 JSON 中的字段名称?

raja
更新于 2020 年 7 月 6 日 06:06:00

4K+ 次查看

Jackson 的 @JsonProperty 注解用于在 JSON 的序列化或反序列化期间应用于属性或方法。它接收一个可选的“name”参数,当属性名称与 JSON 中的“键”名称不同时,此参数很有用。默认情况下,如果键名称与属性名称匹配,则值将映射到属性值。在下面的示例中,我们可以使用 @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 ... 阅读更多

如何在 Java 中使用 Jackson 库忽略空值和空字段?

raja
更新于 2020 年 7 月 6 日 05:57:50

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 ... 阅读更多

使用 flexjson 库在 Java 中美化打印 JSON?

raja
更新于 2020 年 7 月 6 日 05:53:33

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 = ... 阅读更多

如何在 Java 中使用 flexjson 将 JSON 反序列化为 Java 对象?

raja
更新于 2020 年 7 月 4 日 13:01:23

4K+ 次查看

Flexjson 是一个轻量级的库,用于将 Java 对象序列化和反序列化为 JSON 格式,允许对象进行深拷贝和浅拷贝。为了使用 flexjon 运行 Java 程序,我们需要导入 flexjson 包。我们可以使用 JSONDeserializer 类的 deserialize() 方法将 JSON 反序列化为 Java 对象,它将 json 字符串作为输入,并从该 json 表示生成静态类型的对象图。默认情况下,它使用 json 数据中的类属性将非类型化通用 json 数据映射到特定的 Java 类型。语法public T deserialize(String input)在下面的程序中,反序列化 ... 阅读更多

在 Java 中使用 Gson 自定义实例创建器?

raja
更新于 2020 年 7 月 4 日 12:48:43

2K+ 次查看

在将 JSON 字符串解析为 Java 对象或从 Java 对象解析为 JSON 字符串时,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();   ... 阅读更多

如何在 Java 中使用 Gson 库序列化空字段?

raja
更新于 2020 年 7 月 4 日 12:34:19

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();       ... 阅读更多

如何在 Java 中配置 Gson 以启用版本控制支持?

raja
更新于 2020 年 7 月 4 日 12:20:30

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();   ... 阅读更多

广告