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

网站开发设计工程师岗位职责企业vi设计公司有哪些

网站开发设计工程师岗位职责,企业vi设计公司有哪些,学网站建设多久能学会,天府新区规划建设国土局网站Jackson 是 Java 生态中最流行的 JSON 处理库,也是 Spring Boot 的默认 JSON 解析器。它提供了高性能的 JSON 序列化(对象 → JSON)和反序列化(JSON → 对象)功能。以下是 Jackson 的全面使用指南。 1. 基础依赖 Mave…

Jackson 是 Java 生态中最流行的 JSON 处理库,也是 Spring Boot 的默认 JSON 解析器。它提供了高性能的 JSON 序列化(对象 → JSON)和反序列化(JSON → 对象)功能。以下是 Jackson 的全面使用指南。


1. 基础依赖

Maven 依赖

<dependency><groupId>com.fasterxml.jackson.core</groupId><artifactId>jackson-databind</artifactId><version>2.15.0</version> <!-- 使用最新版本 -->
</dependency>

Spring Boot 项目无需手动引入,默认已集成。


2. 核心类:ObjectMapper

ObjectMapper 是 Jackson 的核心类,负责序列化和反序列化操作。

import com.fasterxml.jackson.databind.ObjectMapper;ObjectMapper mapper = new ObjectMapper();

3. 基础用法

3.1 序列化(对象 → JSON)

Person person = new Person("Alice", 30);
String json = mapper.writeValueAsString(person);
// 输出: {"name":"Alice","age":30}

3.2 反序列化(JSON → 对象)

String json = "{\"name\":\"Alice\",\"age\":30}";
Person person = mapper.readValue(json, Person.class);
System.out.println(person.getName()); // 输出: Alice

3.3 序列化到文件/从文件反序列化

// 写入文件
mapper.writeValue(new File("person.json"), person);// 从文件读取
Person person = mapper.readValue(new File("person.json"), Person.class);

4. 常用注解

Jackson 提供注解来控制序列化/反序列化行为。

4.1 字段控制

注解作用示例
@JsonProperty自定义 JSON 字段名@JsonProperty("user_name")
@JsonIgnore忽略字段@JsonIgnore private String password
@JsonInclude仅包含非空字段@JsonInclude(Include.NON_NULL)

4.2 日期格式化

public class Event {@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")private Date createTime;
}

4.3 忽略未知字段

@JsonIgnoreProperties(ignoreUnknown = true)
public class Person {private String name;
}

5. 复杂对象处理

5.1 嵌套对象

public class Order {private String orderId;private Person customer; // 嵌套对象
}String json = "{\"orderId\":\"123\",\"customer\":{\"name\":\"Alice\"}}";
Order order = mapper.readValue(json, Order.class);

5.2 集合类型

// List 序列化/反序列化
List<Person> people = Arrays.asList(new Person("Alice"), new Person("Bob"));
String json = mapper.writeValueAsString(people);List<Person> parsedList = mapper.readValue(json, new TypeReference<List<Person>>() {});

5.3 Map 类型

Map<String, Person> personMap = new HashMap<>();
personMap.put("alice", new Person("Alice"));String json = mapper.writeValueAsString(personMap);
Map<String, Person> parsedMap = mapper.readValue(json, new TypeReference<Map<String, Person>>() {});

6. 高级配置

6.1 美化输出(Pretty Print)

String prettyJson = mapper.writerWithDefaultPrettyPrinter().writeValueAsString(person);

6.2 自定义序列化/反序列化

// 自定义序列化器
public class CustomSerializer extends JsonSerializer<Person> {@Overridepublic void serialize(Person value, JsonGenerator gen, SerializerProvider provider) {gen.writeString(value.getName().toUpperCase());}
}// 注册自定义序列化器
SimpleModule module = new SimpleModule();
module.addSerializer(Person.class, new CustomSerializer());
mapper.registerModule(module);

7. 与 Spring Boot 集成

Spring Boot 自动配置了 ObjectMapper,可通过以下方式自定义:

7.1 全局配置

@Configuration
public class JacksonConfig {@Beanpublic ObjectMapper objectMapper() {ObjectMapper mapper = new ObjectMapper();mapper.setDateFormat(new SimpleDateFormat("yyyy-MM-dd"));mapper.setSerializationInclusion(JsonInclude.Include.NON_NULL);return mapper;}
}

7.2 REST 控制器示例

@RestController
public class PersonController {@GetMapping("/person")public Person getPerson() {return new Person("Alice", 30); // 自动转为JSON}@PostMapping("/person")public Person createPerson(@RequestBody Person person) { // 自动从JSON反序列化return person;}
}

8. 性能优化建议

  1. 重用 ObjectMapper
    避免重复创建,推荐作为单例使用。

  2. 使用 TypeReference 处理泛型

    List<Person> people = mapper.readValue(json, new TypeReference<List<Person>>() {});
    
  3. 启用缓存

    mapper.enable(SerializationFeature.USE_EQUALITY_FOR_OBJECT_ID);
    

9. 常见问题

Q1: 如何处理循环引用?

@JsonIdentityInfo(generator = ObjectIdGenerators.PropertyGenerator.class, property = "id")
public class User {private int id;private User friend; // 可能循环引用
}

Q2: 日期格式全局配置

mapper.setDateFormat(new SimpleDateFormat("yyyy-MM-dd"));

Q3: 忽略 null 字段

mapper.setSerializationInclusion(JsonInclude.Include.NON_NULL);

总结

Jackson 提供了强大而灵活的 JSON 处理能力:

  • 基础操作ObjectMapper + readValue/writeValue
  • 注解控制@JsonProperty@JsonIgnore
  • 高级特性:自定义序列化、泛型处理、Spring 集成

掌握这些用法后,你可以高效安全地处理任何 JSON 数据场景!


文章转载自:

http://gxaV6d7D.hxxzp.cn
http://40kiZPn4.hxxzp.cn
http://fv7tYSCH.hxxzp.cn
http://bEHU0KMR.hxxzp.cn
http://R3nLV91l.hxxzp.cn
http://8BGH2RdV.hxxzp.cn
http://d7ttxVpb.hxxzp.cn
http://PHcZTuU9.hxxzp.cn
http://xAjH3hFm.hxxzp.cn
http://eEmLJQus.hxxzp.cn
http://MUkFjEmr.hxxzp.cn
http://CLKVWICg.hxxzp.cn
http://mqJafJ1a.hxxzp.cn
http://f8dh0r1E.hxxzp.cn
http://6tCKzxy2.hxxzp.cn
http://81nQHWe5.hxxzp.cn
http://csWdCrys.hxxzp.cn
http://totrzMUk.hxxzp.cn
http://337PW0IQ.hxxzp.cn
http://8lspZJKQ.hxxzp.cn
http://BBN3c0L2.hxxzp.cn
http://96vCn3vt.hxxzp.cn
http://0TeHKN6I.hxxzp.cn
http://UX5ZSCJI.hxxzp.cn
http://ipDwTTqv.hxxzp.cn
http://gQPORfqy.hxxzp.cn
http://i0Y0MXRB.hxxzp.cn
http://QqOrUCBC.hxxzp.cn
http://exP4aWRJ.hxxzp.cn
http://9ZZX6bef.hxxzp.cn
http://www.dtcms.com/wzjs/704543.html

相关文章:

  • 成都网站建设网站制作公司来个黑黑的网站
  • 关于英文网站建设的请示静态网站添加到织梦
  • 如何做一张图片的网站西安进一步优化近期防疫措施
  • 山东君天建设工程有限公司网站用火车采集器发布信息时 如何获取网站栏目id
  • 品牌商城网站制作直通车怎么开效果最佳
  • 做网站公司不给源代码保定seo博客
  • 温州做网站掌熊号网站的空间价格
  • 卖水果网站建设的策划书网站建设咨询电话
  • 自贡网站设计请拿笔记记下新域名
  • 有限公司网站建设 互成网络地址 四川汕头网站制作流程
  • 安装wordpress建站程序企业电子商务网站
  • intitle 无线网站制作北京网页制作专业服务
  • 音乐网站建设目标营销型网站维护费用
  • 373网站怎么做这样的网站网站的二维码怎么做的
  • 淘宝网站怎么做网站windows10优化大师
  • 怎么注册网站个人半路学网站建设难吗
  • 景德镇市场建设局网站阳西网站建设
  • 行业网站建设分析html网站系统
  • 酒店网站模板下载网站界面设计的分类有哪几种
  • 四川省建设监理协会网站wp_head wordpress
  • 用dw6做网站首页鞍山玉佛苑玉佛图片
  • 企业全屏网站国家有规定必须做可信网站验证
  • WordPress 站点图标链接搜索百度网址网页
  • 分模板网站和定制网站网站内容方向
  • 鞋帽箱包网站建设湖南个人网络营销订制
  • 南山制作网站公司做盗版电影网站后果
  • 生物科技公司网站模板网站建设主页文档
  • 西安志成网站建设公司有名的网页游戏
  • 江苏省品牌专业建设网站上海建筑安全协会网站
  • 手机与pc网站同步模板娄星区建设局网站