ObjectMapper常见用法(Intro to the Jackson ObjectMapper)

这篇具有很好参考价值的文章主要介绍了ObjectMapper常见用法(Intro to the Jackson ObjectMapper)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。


maven依赖

<dependency>
    <groupId>com.fasterxml.jackson.core</groupId>
    <artifactId>jackson-dataformat-xml</artifactId>
    <version>2.14.2</version>
</dependency>

@Data
@AllArgsConstructor
@NoArgsConstructor
public class Car {
    private String color;
    private String type;
}

Java Object to JSON

Json JavaObject 互相转换 之 序列化(jackson Java Object to JSON)

JSON to Java Object

Json JavaObject 互相转换 之 反序列化(jackson Json to Java Object)

JSON to Jackson JsonNode

Json JavaObject 互相转换 之 jackson json to JsonNode

Creating a Java List From a JSON Array String

Json JavaObject 互相转换 之 jackson Json to List

Creating Java Map From JSON String

Json JavaObject 互相转换 之 jackson Json to Map

Configuring Serialization or Deserialization Feature

Json JavaObject 互相转换 之 序列化定制化用法
Json JavaObject 互相转换 之 反序列化定制化用法

Creating Custom Serializer or Deserializer

public class CustomCarSerializer extends StdSerializer<Car> {

    public CustomCarSerializer() {
        this(null);
    }

    public CustomCarSerializer(Class<Car> t) {
        super(t);
    }

    @Override
    public void serialize(Car car, JsonGenerator jsonGenerator, SerializerProvider serializer) throws IOException {
        jsonGenerator.writeStartObject();
        jsonGenerator.writeStringField("car_brand", car.getType());
        jsonGenerator.writeEndObject();
    }
}
Car car = new Car("yellow", "renault");

ObjectMapper mapper = new ObjectMapper();
SimpleModule module = new SimpleModule("CustomCarSerializer", new Version(1, 0, 0, null, null, null));
module.addSerializer(Car.class, new CustomCarSerializer());
mapper.registerModule(module);

String carJson = mapper.writeValueAsString(car);
System.out.println(carJson); 
// {"car_brand":"renault"}
public class CustomCarDeserializer extends StdDeserializer<Car> {

    public CustomCarDeserializer() {
        this(null);
    }

    public CustomCarDeserializer(Class<?> vc) {
        super(vc);
    }

    @Override
    public Car deserialize(JsonParser parser, DeserializationContext deserializer) throws IOException {
        Car car = new Car();
        ObjectCodec codec = parser.getCodec();
        JsonNode node = codec.readTree(parser);
        JsonNode colorNode = node.get("color");
        String color = colorNode.asText();
        car.setColor(color);
        return car;
    }
}
String json = "{ \"color\" : \"Black\", \"type\" : \"BMW\" }";

ObjectMapper mapper = new ObjectMapper();
SimpleModule module = new SimpleModule("CustomCarDeserializer", new Version(1, 0, 0, null, null, null));
module.addDeserializer(Car.class, new CustomCarDeserializer());
mapper.registerModule(module);

Car car = mapper.readValue(json, Car.class);
System.out.println(car); // Car(color=Black, type=null)

Handling Date Formats

Read More Jackson Date

public class Request 
{
    private Car car;
    private Date datePurchased;

    // standard getters setters
}
ObjectMapper objectMapper = new ObjectMapper();
DateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm a z");
objectMapper.setDateFormat(df);
String carAsString = objectMapper.writeValueAsString(request);
// {"car":{"color":"yellow","type":"renault"},"datePurchased":"2016-07-03 11:43 AM CEST"}

-----------------------------------------------------------------------------读书笔记摘自 文章:Intro to the Jackson ObjectMapper文章来源地址https://www.toymoban.com/news/detail-628428.html

到了这里,关于ObjectMapper常见用法(Intro to the Jackson ObjectMapper)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • gem5学习(11):将缓存添加到配置脚本中——Adding cache to the configuration script

    目录 一、Creating cache objects 1、Classic caches and Ruby 二、Cache 1、导入SimObject(s) 2、创建L1Cache 3、创建L1Cache子类 4、创建L2Cache 5、L1Cache添加连接函数 6、为L1ICache和L1DCache添加连接函数 7、为L2Cache添加内存侧和CPU侧的连接函数 完整代码 三、Adding caches to the simple config file 1、导入cac

    2024年01月25日
    浏览(35)
  • BenchmarkDotNet-Intro

    有些时候我们实现了某个功能, 但是仅仅通过有限的几次调用无法知道这个功能的执行效率以及资源占用情况, 此时就可以使用 Benchmark 对这个功能进行基准测试 在 dotnet 中主要使用 BenchmarkDotNet BenchmarkDotNet 是一个.NET的基准测试框架, 主要用于测量.NET程序的性能 它可以帮助开

    2024年02月08日
    浏览(27)
  • Shell脚本常见用法列举

    最近在复习shell脚本的相关知识,本文列举了一些在shell脚本中用得到的一些基础语法。 shell中常用变量介绍 $0 脚本名 $n 第n个参数,n=1,2,3... $* 所有参数列表(视为一个整体,不包括脚本名) $@ 所有参数列表(独立字符串、不包括脚本名) $# 参数个数(不包含脚本名) $$ 当

    2024年02月05日
    浏览(26)
  • Junit常见用法

    一.Junit的含义 Junit是一种Java编程语言的单元测试框架。它提供了一些用于编写和运行测试的注释和断言方法,并且可以方便地执行测试并生成测试报告。Junit是开源的,也是广泛使用的单元测试框架之一 二.Junit项目的创建 (1)先创建一个 普通的maven项目   (2)然后在pom.

    2024年02月07日
    浏览(29)
  • ElasticSearch简介及常见用法

    Elasticsearch 是 Elastic Stack 核心的分布式搜索和分析引擎。 Logstash 和 Beats 有助于收集、聚合和丰富您的数据并将其存储在 Elasticsearch 中。 Kibana 使您能够以交互方式探索、可视化和分享对数据的见解,并管理和监控堆栈。 Elasticsearch 可以快速 索引、搜索和分析 海量数据。 Ela

    2024年03月20日
    浏览(32)
  • 类模板的常见用法

    类模板和函数模板的定义和使用类似,我们已经进行了介绍。有时,有两个或多个类,其功能是相同的,仅仅是数据类型不同。类模板用于实现类所需数据的类型参数化 Subclass(string name, int age):Personstring, int(name,age) 这句话首先声明带参数的构造函数里面的类型。这个类型要和

    2024年04月25日
    浏览(23)
  • EFCore常见用法

    EFCore官方文档置顶,看这个就行。下面的内容只是总结,算是备忘录。 一、创建和删除 二、表模型 三、DbContext 四、查询。Linq表达式 五、删除 六、添加 七、修改 八、操作 九、事务

    2024年02月12日
    浏览(23)
  • git使用(常见用法)

    git官方下载跳转 安装简单,有手就行 1. 连接远程仓库 2.远程库关联 3. 拉取远程分支 4.上传到远程分支 5.总结

    2024年02月14日
    浏览(34)
  • JAVA操作Json的ObjectMapper类

    市面上用于在 Java 中解析 Json 的第三方库,随便一搜不下几十种,其中的佼佼者有 Google 的 Gson以及本文的 jackson。 三者不相伯仲,随着掌握一个都能满足项目中的 json 解析操作,因为 Spring Boot Web 组件默认使用的是 jackson,所以掌握 Jackjson 是非常有必要的。

    2024年02月07日
    浏览(24)
  • HttpSession的常见用法(javaWeb)

    Servlet提供了HttpSession接口,该接口提供了一种访问网站时识别用户以及存储有关用户信息的方式。Servlert容器适用这个接口来创建一个HTTP客户端和HTTP服务器之间的Session会话。会话持续一个指定的时间段,跨多个连接或页面请求。 通过HttpServletRequest获取。 1、获取Session会话中

    2024年02月05日
    浏览(21)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包