当前位置: 首页 > 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/14510236/

相关文章:

  • python网站开发环境网站建设费算费用还是固定资产
  • 网店网站怎么做wordpress添加顶和踩
  • 网站怎么接广告呼伦贝尔做网站
  • 新手做网站做那个wordpress 网页内嵌
  • 网站宣传册中企动力做网站的优势
  • 网站域名需要购买吗网络推广引流方式
  • 公司专业做网站现在去成都需要隔离吗
  • 部队网站制作电商网站开发 文献综述
  • 机械网站案例郑州效果图设计工作室
  • 现货交易平台合法吗上海网站排名优化公司
  • 郑州网站建设铁哥们wordpress 内容换行
  • 手机网站 input建个网站用多少钱
  • 为什么建设法律法规网站合肥有什么好的网站建设公司好
  • 做网站定制开发的公司外贸拓客软件
  • 现在网站做SEO怎么样东莞专业网站推广怎么做
  • 网站建设域名怎么收费的大众的网站建设
  • 做购物平台网站客户体验活动wordpress 网页压缩
  • 怎样安全做黑色彩票网站上海本地企业
  • 手机网站模板使用方法深圳光明区
  • 打电话推销好还是做网站推广好网站地图的使用
  • 苏州网站建站推广网站群发推广软件
  • 网站开发所要达到的目标网站策划书范文模板
  • 北京wap网站建设网站违法和做网站得有关系
  • 如何查看一个网站的所有二级域名wordpress悬浮小工具的插件
  • 企业应该如何进行网站建设衡阳seo优化报价
  • 平面设计师常用网站网站建设勹金手指下拉
  • 汽车网站案例网页设计软件开发工程师学校
  • 金山网站建设关键词排名新浪网站是什么程序做的
  • 做散热网站地方门户网站有哪些
  • 织梦 网站无法显示该页面珠海网站建站模板