找到关于 JSON 的211 篇文章
1K+ 次浏览
@JsonRawValue
注解可用于方法和字段,以序列化声明的字段或属性。例如,如果我们的 Java 类中有一个 String 字段,则 JSON 值将用引号 (“ ”) 括起来。但是,当我们用 @JsonRawValue
注解该字段时,Jackson 库会省略引号。语法@Target(value={ANNOTATION_TYPE, METHOD, FIELD}) @Retention(value=RUNTIME) public @interface JsonRawValue
在下面的示例中,empAddress
字段是一个 JSON 字符串。此 JSON 字符串序列化为 Employee
对象的最终 JSON 字符串的一部分。示例import com.fasterxml.jackson.annotation.JsonRawValue; import com.fasterxml.jackson.databind.ObjectMapper; import com.fasterxml.jackson.core.JsonProcessingException; public class JsonRawValueAnnotationTest { public static void main(String args[]) throws JsonProcessingException { ... 阅读更多
3K+ 次浏览
JSONObject
类是名称/值对 (无序) 的集合,其中 bean 是一个类,其成员字段具有 setter 和 getter 方法。我们可以使用 JSONObject
类的 toBean()
方法将 JSON 对象转换为 bean。语法public static Object toBean(JSONObject jsonObject, Class beanClass)
示例import net.sf.json.JSONObject; public class ConvertJSONObjToBeanTest { public static void main(String[] args) { mployee emp = new Employee("Sai", "Ram", 30, "Bangalore"); JSONObject jsonObj = JSONObject.fromObject(emp); System.out.println(jsonObj.toString(3)); // 格式化打印 JSON emp = (Employee)JSONObject.toBean(jsonObj, Employee.class); System.out.println(emp.toString()); } // Employee 类 public static ... 阅读更多
812 次浏览
@JsonFilter
注解用于定义自定义过滤器来序列化 Java 对象。我们需要使用 FilterProvider
类来定义过滤器并获取实际的过滤器实例。现在通过将 FilterProvider
分配给 ObjectMapper
类来配置过滤器。语法@Target(value={ANNOTATION_TYPE, TYPE, METHOD, FIELD, PARAMETER}) @Retention(value=RUNTIME) public @interface JsonFilter
在下面的示例中,声明为 @JsonFilter
注解的参数的 customFilter
只提取名称并过滤掉 bean 的其他属性。示例import com.fasterxml.jackson.annotation.JsonFilter; import com.fasterxml.jackson.databind.ObjectMapper; import com.fasterxml.jackson.core.JsonProcessingException; import com.fasterxml.jackson.databind.ser.FilterProvider; import com.fasterxml.jackson.databind.ser.impl.SimpleBeanPropertyFilter; import com.fasterxml.jackson.databind.ser.impl.SimpleFilterProvider; public class JsonFilterAnnotationTest { public static void main(String args[]) throws JsonProcessingException { ... 阅读更多
4K+ 次浏览
@JsonManagedReference
和 @JsonBackReference
注解可用于以双向方式创建 JSON 结构。@JsonManagedReference
注解是正向引用,在序列化过程中包含在内,而 @JsonBackReference
注解是反向引用,在序列化过程中被省略。在下面的示例中,我们可以实现 @JsonManagedReference
和 @JsonBackReference
注解。示例import java.util.*; import com.fasterxml.jackson.annotation.JsonManagedReference; import com.fasterxml.jackson.annotation.JsonBackReference; import com.fasterxml.jackson.databind.ObjectMapper; import com.fasterxml.jackson.core.JsonProcessingException; public class ManagedReferenceBackReferenceTest { public static void main(String args[]) throws JsonProcessingException { BackReferenceBeanTest testBean = new BackReferenceBeanTest(110, "Sai Chaitanya"); ManagedReferenceBeanTest bean = new ManagedReferenceBeanTest(135, "Adithya Ram", testBean); testBean.addEmployees(bean); ObjectMapper mapper = ... 阅读更多
1K+ 次浏览
JsonView
注解可用于动态地在序列化和反序列化过程中包含/排除属性。我们需要配置 ObjectMapper
类来包含用于使用 writerWithView()
方法从 Java 对象写入 JSON 的视图类型。语法@Target(value={ANNOTATION_TYPE, METHOD, FIELD}) @Retention(value=RUNTIME) public @interface JsonView
示例import com.fasterxml.jackson.databind.ObjectMapper; import com.fasterxml.jackson.annotation.JsonProperty; import com.fasterxml.jackson.annotation.JsonView; import com.fasterxml.jackson.core.JsonProcessingException; public class JsonViewAnnotationTest { public static void main(String args[]) throws JsonProcessingException { ObjectMapper objectMapper = new ObjectMapper(); String jsonString = objectMapper.writerWithView(Views.Public.class).writeValueAsString(new Person()); String jsonStringInternal = objectMapper.writerWithView(Views.Internal.class).writeValueAsString(new Person()); System.out.println(jsonString); System.out.println(jsonStringInternal); } } ... 阅读更多
409 次浏览
JsonConfig
类可用于配置序列化过程。我们可以在序列化为 JSON 时使用 JsonConfig
的 setJsonPropertyFilter()
方法来设置属性过滤器。我们需要通过重写 PropertyFilter
接口的 apply()
方法来实现自定义 PropertyFilter
类。如果属性将被过滤掉,则返回 true,否则返回 false。语法public void setJsonPropertyFilter(PropertyFilter jsonPropertyFilter)
示例import net.sf.json.JSONObject; import net.sf.json.JsonConfig; import net.sf.json.util.PropertyFilter; public class ConvertBeanToJsonExcludeFilterTest { public static void main(String[] args) { Student student = new Student("Sai", "Chaitanya", 20, "Hyderabad"); JsonConfig jsonConfig = new JsonConfig(); jsonConfig.setJsonPropertyFilter(new CustomPropertyFilter()); ... 阅读更多
224 次浏览
JSON-lib 是一个 Java 库,用于将 Java bean、映射、数组和集合序列化和反序列化为 JSON 格式。我们可以使用 XMLSerializer
类的 setTypeHintsEnabled()
方法将 bean 转换为不带类型提示的 XML,此方法设置是否可以将 JSON 类型作为属性包含在内。我们可以将 false
作为参数传递给此方法以禁用 XML 中的类型提示。语法public void setTypeHintsEnabled(boolean typeHintsEnabled)
示例import net.sf.json.JSONObject; import net.sf.json.xml.XMLSerializer; public class ConvertBeanToXMLNoHintsTest { public static void main(String[] args) { Employee emp = new Employee("Krishna Vamsi", 115, 30, "Java"); JSONObject jsonObj = JSONObject.fromObject(emp); ... 阅读更多
256 次浏览
net.sf.json.xml.XMLSerializer
类是一个实用程序类,用于将 JSON 转换为 XML。将 JSONObject
实例转换为 XML 时,此类可以添加提示以转换回 JSON。我们可以使用 XMLSerializer
类的 write()
方法将 JSON 值写入具有 UTF-8 编码的 XML 字符串,它可以返回格式良好的 XML 文档的字符串表示形式。语法public String write(JSON json)
示例import net.sf.json.JSONObject; import net.sf.json.xml.XMLSerializer; public class ConvertBeanToXMLTest { public static void main(String[] args) { Student student = new Student("Sai", "Adithya", 25, "Pune"); JSONObject jsonObj = JSONObject.fromObject(student); System.out.println(jsonObj.toString(3));// 格式化打印 JSON ... 阅读更多
446 次浏览
Java 数组是一个对象,用于存储多个相同类型的变量,它可以保存基本类型和对象引用,而 JSONArray 是一个有序的值序列。其外部文本形式是用方括号括起来的字符串,值之间用逗号分隔;内部形式是一个对象,具有 get() 和 opt() 方法,用于通过索引访问值,以及 element() 方法用于添加或替换值。第一步,我们可以创建一个 Object[] 数组,并将此参数作为参数传递给 JSONSerializer 类的 toJSON() 方法,并进行类型转换以获得 JSON 数组。我们可以按照以下示例将 Object[] 数组转换为 JSONArray。阅读更多
1K+ 次浏览
JsonConfig 类是一个实用程序类,用于配置序列化过程。我们可以使用 JsonConfig 类的 setExcludes() 方法将 Bean 转换为仅包含部分属性的 JSON 对象,并将此 JSON 配置实例作为参数传递给 JSONObject 的 static 方法 fromObject()。语法:public void setExcludes(String[] excludes) 在下面的示例中,我们将演示如何排除某些属性并将 Bean 转换为 JSON 对象。示例:import net.sf.json.JSONObject; import net.sf.json.JsonConfig; public class BeanToJsonExcludeTest { public static void main(String[] args) { Student student = new Student("Raja", "Ramesh", 35, "Madhapur"); JsonConfig jsonConfig = new ... 阅读更多