当前位置: 首页 > news >正文

公司做网站的费用计什么科目深圳做网站专业的公司

公司做网站的费用计什么科目,深圳做网站专业的公司,山东建设兵团网站,沈阳设计网站公司哪家好全面掌握 Jackson 序列化工具#xff1a;原理、使用与高级配置详解 Jackson 是一个功能强大的 JSON 处理库#xff0c;广泛应用于 Java 项目中。它提供了丰富的功能和灵活的配置选项#xff0c;可以轻松地在 Java 对象和 JSON 数据之间进行转换。本文将详细介绍 Jackson 的…全面掌握 Jackson 序列化工具原理、使用与高级配置详解 Jackson 是一个功能强大的 JSON 处理库广泛应用于 Java 项目中。它提供了丰富的功能和灵活的配置选项可以轻松地在 Java 对象和 JSON 数据之间进行转换。本文将详细介绍 Jackson 的核心概念、基本用法、高级配置及处理集合类型的数据旨在帮助你全面掌握 Jackson 的使用方法。 一、Jackson 的核心概念 1. ObjectMapper ObjectMapper 是 Jackson 的核心类负责将 Java 对象转换为 JSON 以及将 JSON 转换为 Java 对象。它提供了许多方法来处理这些操作例如 writeValue、readValue 等。 2. JsonParser 和 JsonGenerator JsonParser低级别的 JSON 解析器用于逐步解析 JSON 内容。JsonGenerator低级别的 JSON 生成器用于逐步生成 JSON 内容。 3. Annotations Jackson 提供了许多注解来定制序列化和反序列化过程包括但不限于 JsonProperty指定字段的 JSON 名称。JsonIgnore忽略字段。JsonFormat格式化日期和时间。JsonInclude指定包含的条件。 二、添加依赖 在你的项目中添加 Jackson 依赖。以 Maven 为例 dependencygroupIdcom.fasterxml.jackson.core/groupIdartifactIdjackson-databind/artifactIdversion2.12.3/version /dependency对于 Gradle 项目 implementation com.fasterxml.jackson.core:jackson-databind:2.12.3三、基本用法 1. 序列化和反序列化 以下示例展示了如何使用 ObjectMapper 序列化和反序列化 Java 对象 import com.fasterxml.jackson.databind.ObjectMapper;public class JacksonExample {public static void main(String[] args) {try {ObjectMapper objectMapper new ObjectMapper();// 创建一个对象User user new User();user.setName(John);user.setAge(30);// 序列化Java 对象 - JSON 字符串String jsonString objectMapper.writeValueAsString(user);System.out.println(JSON String: jsonString);// 反序列化JSON 字符串 - Java 对象User deserializedUser objectMapper.readValue(jsonString, User.class);System.out.println(Deserialized User: deserializedUser);} catch (Exception e) {e.printStackTrace();}} }class User {private String name;private int age;// getters and setterspublic String getName() {return name;}public void setName(String name) {this.name name;}public int getAge() {return age;}public void setAge(int age) {this.age age;}Overridepublic String toString() {return User{name name , age age };} }2. 使用注解定制序列化和反序列化 Jackson 提供了许多注解来定制序列化和反序列化过程。例如 JsonProperty用于指定 JSON 字段名。JsonIgnore用于忽略某个字段。JsonFormat用于指定日期格式。 import com.fasterxml.jackson.annotation.JsonIgnore; import com.fasterxml.jackson.annotation.JsonProperty; import com.fasterxml.jackson.annotation.JsonFormat;import java.util.Date;class User {JsonProperty(full_name)private String name;JsonIgnoreprivate int age;JsonFormat(shape JsonFormat.Shape.STRING, pattern dd-MM-yyyy)private Date birthDate;// getters and setterspublic String getName() {return name;}public void setName(String name) {this.name name;}public int getAge() {return age;}public void setAge(int age) {this.age age;}public Date getBirthDate() {return birthDate;}public void setBirthDate(Date birthDate) {this.birthDate birthDate;}Overridepublic String toString() {return User{name name , age age , birthDate birthDate };} }使用上述类生成的 JSON 将如下所示 {full_name: John,birthDate: 25-12-1990 }3. 高级配置 可以通过配置 ObjectMapper 来自定义其行为。例如 ObjectMapper objectMapper new ObjectMapper(); objectMapper.configure(SerializationFeature.INDENT_OUTPUT, true); // 格式化输出 objectMapper.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false); // 忽略未知属性这些配置允许你格式化输出 JSON 和忽略未知属性。 四、处理复杂对象 Jackson 还可以处理复杂对象和集合类型。 1. 处理嵌套对象 class Address {private String street;private String city;// getters and setterspublic String getStreet() {return street;}public void setStreet(String street) {this.street street;}public String getCity() {return city;}public void setCity(String city) {this.city city;} }class User {private String name;private int age;private Address address;// getters and setterspublic String getName() {return name;}public void setName(String name) {this.name name;}public int getAge() {return age;}public void setAge(int age) {this.age age;}public Address getAddress() {return address;}public void setAddress(Address address) {this.address address;}Overridepublic String toString() {return User{name name , age age , address address };} }2. 处理集合类型 以下示例展示了如何处理包含复杂对象的集合类型List、Map 等。 import com.fasterxml.jackson.core.type.TypeReference; import com.fasterxml.jackson.databind.ObjectMapper;import java.util.ArrayList; import java.util.List;public class JacksonCollectionExample {public static void main(String[] args) {try {ObjectMapper objectMapper new ObjectMapper();// 创建用户列表ListUser userList new ArrayList();userList.add(new User(John Doe, 30));userList.add(new User(Jane Doe, 25));// 序列化用户列表Java 对象 - JSON 字符串String userListJson objectMapper.writeValueAsString(userList);System.out.println(User List JSON:\n userListJson);// 反序列化用户列表JSON 字符串 - Java 对象ListUser deserializedUserList objectMapper.readValue(userListJson, new TypeReferenceListUser(){});System.out.println(Deserialized User List:\n deserializedUserList);// 创建组对象Group group new Group(Admins, userList);// 序列化组对象Java 对象 - JSON 字符串String groupJson objectMapper.writeValueAsString(group);System.out.println(Group JSON:\n groupJson);// 反序列化组对象JSON 字符串 - Java 对象Group deserializedGroup objectMapper.readValue(groupJson, Group.class);System.out.println(Deserialized Group:\n deserializedGroup);} catch (Exception e) {e.printStackTrace();}} }class Group {private String groupName;private ListUser users;// Constructorspublic Group() {}public Group(String groupName, ListUser users) {this.groupName groupName;this.users users;}// Getters and Setterspublic String getGroupName() {return groupName;}public void setGroupName(String groupName) {this.groupName groupName;}public ListUser getUsers() {return users;}public void setUsers(ListUser users) {this.users users;}Overridepublic String toString() {return Group{groupName groupName , users users };} }代码解析 1. 创建用户列表 ListUser userList new ArrayList(); userList.add(new User(John Doe, 30)); userList.add(new User(Jane Doe, 25));创建一个包含两个 User 对象的 ArrayList。 2. 序列化用户列表 String userListJson objectMapper.writeValueAsString(userList); System.out.println(User List JSON:\n userListJson);使用 ObjectMapper 将用户列表序列化为 JSON 字符串。 3. 反序列化用户列表 ListUser deserializedUserList objectMapper.readValue(userListJson, new TypeReferenceListUser(){}); System.out.println(Deserialized User List:\n deserializedUserList);使用 ObjectMapper 将 JSON 字符串反序列化为 List。注意 TypeReference 用于处理泛型类型。 4. 创建组对象 Group group new Group(Admins, userList);创建一个 Group 对象其中包含一个组名和用户列表。 5. 序列化组对象 String groupJson objectMapper.writeValueAsString(group); System.out.println(Group JSON:\n groupJson);使用 ObjectMapper 将组对象序列化为 JSON 字符串。 6. 反序列化组对象 Group deserializedGroup objectMapper.readValue(groupJson, Group.class); System.out.println(Deserialized Group:\n deserializedGroup);使用 ObjectMapper 将 JSON 字符串反序列化为 Group 对象。 五、总结 通过上述内容我们详细介绍了 Jackson 的基本概念、用法、高级配置以及处理复杂对象和集合类型的示例。掌握这些技术可以在实际项目中高效地使用 Jackson 处理 JSON 数据。 Jackson 是一个强大且灵活的工具能够满足各种 JSON 处理需求。希望本教程能够帮助你更好地理解和使用 Jackson。
http://www.hkea.cn/news/14526682/

相关文章:

  • dw做链接网站无法显示该页面书店网站html模板
  • 网站设计中的js企业邮箱 腾讯
  • 商城网站做推广中国尊设计公司
  • 小精灵网站在线做语文wordpress 执行了两次
  • 自己的网站怎么做美工网站建设方案概述
  • 聊城网站网站建设哪里教做网站的
  • 网站建设标志设计资源优化排名网站
  • 手机网站单页面商品关键词怎么优化
  • 沧州做网站公司临沂网站建设咨询
  • 大理网站建设公司o2o网站建设方案ppt
  • wordpress 众筹网站模板视频网站建设公司
  • 网络推广都有哪些平台一个新的网站怎么做SEO优化
  • 自适应网站建站价格wordpress备份恢复
  • 做网站公司共有几处密码个人社保网上服务平台
  • 网站排名优化教程西安网页设计培训机构哪个好
  • 富蕴县建设局网站最新网站推广哪家好
  • 江苏省建设厅网站建筑电工证制作网页的工具软件
  • 网站备案服务类型推荐网站在线看兄弟们
  • 娄底网站建设最专业常州网站制作市场
  • 展厅设计素材网站网站建设和网页设计的区别
  • 没有网站如何做天天联盟快手刷粉网站推广
  • 佛山网站建设哪儿有四川建设工程网
  • 网站架构策划书html5 php 网站源码
  • 东营seo整站优化网站开发实训教程
  • php网站建设的几个流程移动网站建设学习
  • 义乌网站建设微信开发wordpress上传图片错误媒体库错误
  • 嘉兴建站公司淘宝做网站推广
  • 青岛网上房地产网站成全视频免费高清观看在线小说
  • 山西建网站度娘网站桃花怎么做
  • wap网站定位it外包前景