找到 2637 篇文章 关于 Java
5K+ 次查看
JSONObject 是一个无序的键值对集合,其值可以是以下任何类型:布尔值、JSONArray、JSONObject、数字和字符串。JSONObject 的构造函数可用于将外部形式的 JSON 文本转换为内部形式,其值可以通过 get() 和 opt() 方法检索,或使用 put() 和 toString() 方法将值转换为 JSON 文本。在下面的示例中,我们可以按降序对 JSONObject 的值进行排序。示例import org.json.*; import java.util.*; public class JSonObjectSortingTest { public static void main(String[] args) { ... 阅读更多
525 次查看
Jackson 的 @JacksonInject 注解可用于将值注入解析的对象中,而不是从 JSON 中读取这些值。为了将值注入字段,我们可以使用 InjectableValues 类,并且需要配置 ObjectMapper 类以同时读取 InjectableValues 类中的注入值和 JSON 字符串中的其余值。语法@Target(value={ANNOTATION_TYPE, METHOD, FIELD, PARAMETER}) @Retention(value=RUNTIME) public @interface JacksonInject示例import com.fasterxml.jackson.annotation.*; import com.fasterxml.jackson.databind.*; import java.io.*; public class JacksonInjectTest { public static void main(String args[]) throws IOException { String jsonString = "{\"empName\": \"Raja Ramesh\"}"; InjectableValues injectableValues = new InjectableValues.Std().addValue(int.class, 110); ... 阅读更多
2K+ 次查看
Jackson 的 @JsonIgnoreType 注解可用于在序列化过程中忽略类,它可以将类的所有属性或字段标记为在序列化和反序列化 JSON 对象时忽略。语法@Target(value={ANNOTATION_TYPE, TYPE}) @Retention(value=RUNTIME) public @interface JsonIgnoreType示例import com.fasterxml.jackson.annotation.*; import com.fasterxml.jackson.core.*; import com.fasterxml.jackson.databind.*; import java.io.*; public class JsonIgnoreTypeTest { public static void main(String args[]) throws IOException { Employee emp = new Employee(); ObjectMapper mapper = new ObjectMapper(); String jsonString = mapper.writerWithDefaultPrettyPrinter().writeValueAsString(emp); System.out.println(jsonString); } } // Employee 类 class Employee { @JsonIgnoreType public static class Address { ... 阅读更多
6K+ 次查看
Gson 是一个用于 Java 的 json 库,可用于生成 JSON。在第一步中,我们可以读取 JSON 文件并将其解析为 Java 对象,然后需要将 Java 对象类型转换为 JSonObject 并解析为 JsonArray。然后迭代此 JSON 数组以打印 JsonElement。我们可以创建一个 JsonWriter 类,一次一个令牌地将 JSON 编码的值写入流。最后,可以将新的 JSON 字符串写入现有的 json 文件。示例import java.io.*; import java.util.*; import com.google.gson.*; import com.google.gson.stream.*; import com.google.gson.annotations.*; public class JSONFilewriteTest { ... 阅读更多
4K+ 次查看
@JsonAutoDetect 注解可以在类级别使用,以覆盖序列化和反序列化期间类的属性的可见性。我们可以使用“creatorVisibility”、“fieldVisibility”、“getterVisibility”、“setterVisibility”和“isGetterVisibility”等属性设置可见性。JsonAutoDetect 类可以定义与 Java 类可见性级别类似的公共静态常量,例如“ANY”、“DEFAULT”、“NON_PRIVATE”、“NONE”、“PROTECTED_AND_PRIVATE”和“PUBLIC_ONLY”。示例import com.fasterxml.jackson.annotation.*; import com.fasterxml.jackson.databind.*; import java.io.*; public class JsonAutoDetectTest { public static void main(String[] args) throws IOException { Address address = new Address("Madhapur", "Hyderabad", "Telangana"); Name name = new Name("Raja", "Ramesh"); Student student ... 阅读更多
3K+ 次查看
Gson 的 @SerializedName 注解可以序列化为 JSON,并使用提供的 name 值作为其字段名。此注解可以覆盖任何 FieldNamingPolicy,包括可能已在 Gson 实例上设置的默认字段命名策略。可以使用 GsonBuilder 类设置不同的命名策略。语法@Retention(value=RUNTIME) @Target(value={FIELD, METHOD}) public @interface SerializedName示例import com.google.gson.annotations.*; import com.google.gson.*; public class SerializedNameAnnotationTest { public static void main(String args[]) { Employee emp = new Employee("Rahul", "Dev", 30, "Nagpur"); Gson gson = new GsonBuilder().setPrettyPrinting().create(); // 美化打印 String jsonStr = gson.toJson(emp); System.out.println(jsonStr); } ... 阅读更多
3K+ 次查看
Jackson 的 @JsonIgnoreProperties 注解可用于指定要忽略的类的属性或字段列表。@JsonIgnoreProperties 注解可以放在类声明上方,而不是放在要忽略的各个属性或字段上方。语法@Target(value={ANNOTATION_TYPE, TYPE, METHOD, CONSTRUCTOR, FIELD}) @Retention(value=RUNTIME) public @interface JsonIgnoreProperties示例import java.io.*; import com.fasterxml.jackson.annotation.*; import com.fasterxml.jackson.databind.*; public class JsonIgnorePropertiesTest { public static void main(String[] args) throws IOException { Customer customer = new Customer("120", "Ravi", "Hyderabad"); System.out.println(customer); ObjectMapper mapper = new ObjectMapper(); String jsonString = mapper.writeValueAsString(customer); System.out.println("JSON: " + jsonString); ... 阅读更多
553 次查看
Flexjson 是一个轻量级的库,用于将 Java 对象序列化和反序列化为 JSON 格式。JSONSerializer 是执行 Java 对象到 JSON 序列化的主要类。我们可以使用 WriterOutputHandler 类将 JSON 字符串序列化到 Output Handler,它实现了 OutputHandler 接口。语法public class WriterOutputHandler extends Object implements OutputHandler示例import java.io.*; import flexjson.JSONSerializer; import flexjson.OutputHandler; import flexjson.WriterOutputHandler; public class JsonOutputHandlerTest { public static void main(String[] args) { JSONSerializer serializer = new JSONSerializer().prettyPrint(true); // 美化打印 JSON Employee emp = new Employee("Raja", "Ramesh", 28, "Hyderabad"); OutputHandler out = new WriterOutputHandler(new ... 阅读更多
8K+ 次查看
Jackson 的 @JsonIgnore 注解可以用于忽略 Java 对象的某个属性或字段。在将 JSON 读取到 Java 对象时以及将 Java 对象写入 JSON 时,都可以忽略该属性。我们可以使用 ObjectMapper 类的 readValue() 和 writeValueAsString() 方法将 JSON 读取到 Java 对象,并将 Java 对象写入 JSON。语法@Target(value={ANNOTATION_TYPE, METHOD, CONSTRUCTOR, FIELD}) @Retention(value=RUNTIME) public @interface JsonIgnoreExampleimport java.io.*; import com.fasterxml.jackson.annotation.*; import com.fasterxml.jackson.databind.*; public class JsonIgnoreTest { public static void main(String[] args) throws IOException { Customer customer = new Customer("110", "Surya Kiran", "Chennai"); System.out.println(customer); ... 阅读更多
866 次浏览
@JsonProperty 注解可以用于指示 JSON 中的属性名称。此注解可以用于构造函数或工厂方法。@JsonCreator 注解在无法使用 @JsonSetter 注解的情况下很有用。例如,不可变对象没有任何 setter 方法,因此需要将其初始值注入到构造函数中。@JsonProperty - 构造函数示例import com.fasterxml.jackson.annotation.*; import java.io.IOException; import com.fasterxml.jackson.databind.*; public class JsonCreatorTest1 { public static void main(String[] args) throws IOException { ObjectMapper om = new ObjectMapper(); String jsonString = "{\"id\":\"101\", \"fullname\":\"Ravi Chandra\", \"location\":\"Pune\"}"; System.out.println("JSON: " + jsonString); ... 阅读更多