找到 2637 篇文章 关于 Java
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 ... 阅读更多
813 阅读量
@JsonFilter 注解用于定义自定义过滤器以序列化 Java 对象。我们需要使用 FilterProvider 类来定义过滤器并获取实际的过滤器实例。现在通过将 FilterProvider 分配给 ObjectMapper 类来配置过滤器。语法@Target(value={ANNOTATION_TYPE, TYPE, METHOD, FIELD, PARAMETER}) @Retention(value=RUNTIME) public @interface JsonFilter在下面的示例中,自定义过滤器 customFilter 可以声明为 @JsonFilter 注解的参数,它仅提取名称并过滤掉 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、Map、数组和集合序列化和反序列化为 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示例import ... 阅读更多
1K+ 阅读量
JsonConfig 类是一个帮助配置序列化过程的实用程序类。我们可以将 Bean 转换为具有可以排除的少量属性的 JSON 对象,方法是使用 JsonConfig 类的 setExcludes() 方法,并将此 JSON 配置实例传递给 JSONObject 的静态方法 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 ... 阅读更多