jackson

Lombok/Jackson - POJO for a json array

可紊 提交于 2020-12-12 11:35:09
问题 I have a json array that I need to receive(de-serialize) from a server and send (serialize) to another server: Example: [ { "car-name": "string", "parts": [ "engine", "wheels" ] } ] I started with writing the following POJO to represent this Json array: import lombok.Builder; import lombok.Singular; import lombok.Value; @Builder @Value public class Car { private String carName; @Singular("part") private List<String> parts; } With this: I am able to build the object using Lombok as: Car myCar

真没想到,Springboot能这样做全局日期格式化,有点香!

旧城冷巷雨未停 提交于 2020-12-11 12:51:34
本文收录在 GitHub 地址 https://github.com/chengxy-nds/Springboot-Notebook 说在前边 最近部门几位同事受了一些委屈相继离职,共事三年临别之际颇有不舍,待一切手续办妥帖,寒暄过后送他们出公司,几个老哥临别时冲我鬼魅一笑,我顿时心里一紧有种不好的预感,这事绝对没有这么简单。等我接手这几个大佬的项目后,应验了我的预感,此刻我居然有点后悔,为啥送别之时没揍他们一顿!哈哈哈~ 而这种打人的冲动,在我开始优化几位老哥的项目时候,变得越来越强烈。 有个坑 技术部每个月都会组织一下代码走查及优化,以前是各自审查优化自己的项目,如今几位老哥的离职他们的项目就落到了我的头上。对于程序员来说最痛苦的事情就是接手别人的项目,还要做优化改造,因为这一点也不比重构一遍项目简单。不过,军令在前,没办法硬着头皮上吧! 第一个优化的点就让我有点崩溃,这几个大佬的技能能力很强,一直都是我学习的榜样,但在项目里几乎所有的日期格式化都这样用 SimpleDateFormat ,像如下代码这样实现,emm~ ,受过伤的男人怎么啥事都做的出来,哈哈哈~ SvcOrderDailyStatisticsPo orderDailyStatisticsPo = new SvcOrderDailyStatisticsPo(); SimpleDateFormat

Force Jackson serialize LocalDate to Array

蹲街弑〆低调 提交于 2020-12-10 08:42:27
问题 I'm using spring-boot 2.1.6 and there is an API to accept a form including a date like: @Data public class MyForm { private LocalDate date; ... } @Controller public class MyController { @PostMapping("...") public ResponseEntity<...> post(@RequestBody MyForm myForm) { ... } } By default spring MVC accept this JSON format: { "date": [2020, 6, 17], ... } So in Front-End, my JavaScript code just submit a form like this, i.e. JS will convert a date to an array. But when I run spring-boot test,

小学妹问我:什么是java序列化?

青春壹個敷衍的年華 提交于 2020-12-08 20:00:26
本文主要内容 背景 在Java语言中,程序运行的时候,会产生很多对象,而对象信息也只是在程序运行的时候才在内存中保持其状态,一旦程序停止,内存释放,对象也就不存在了。 怎么能让对象永久的保存下来呢?-------- 对象序列化 。 何为序列化和反序列化? 序列化:对象到IO数据流 反序列化:IO数据流到对象 有哪些使用场景? Java平台允许我们在内存中创建可复用的Java对象,但一般情况下,只有当JVM处于运行时,这些对象才可能存在,即,这些对象的生命周期不会比JVM的生命周期更长。但在现实应用中,就可能要求在JVM停止运行之后能够保存(持久化)指定的对象,并在将来重新读取被保存的对象。Java对象序列化就能够帮助我们实现该功能。 使用Java对象序列化,在保存对象时,会把其状态保存为一组字节,在未来,再将这些字节组装成对象。必须注意地是,对象序列化保存的是对象的"状态",即它的成员变量。由此可知,对象序列化不会关注类中的静态变量。 除了在持久化对象时会用到对象序列化之外,当使用RMI(远程方法调用),或在网络中传递对象时,都会用到对象序列化。 Java序列化API为处理对象序列化提供了一个标准机制,该API简单易用。 很多框架中都有用到,比如典型的dubbo框架中使用了序列化。 序列化有什么作用? 序列化机制允许将实现序列化的Java对象转换位字节序列

详解PROTOCOL BUFFERS

十年热恋 提交于 2020-12-08 10:27:57
1. 前言 Protocal Buffers 是google推出的一种序列化协议。由于它的编码和解码的速度,已经编码后的大小控制的较好,因此它常常被用在RPC调用中,传递参数和结果。比如 gRPC 。 Protocal Buffers 的实现非常简单,本文将对比JSON协议,来聊聊Protocol Buffers的实现以及它高性能的秘密 2. 正篇 2.1 减少传输量(字段名和定界符) 汽车类在Golang中的定义 type Car struct { Age int32 `json:"age"` Color string `json:"color"` Price float32 `json:"price"` } JSON字符串表示 { "age": 10, "color": "red", "price": 15.2568983 } 1)”{” 、”}”、”[“, “]”、 双引号、”,” 、”:” 是为了把字段与字段之间,以及字段的名称和值分隔开。它们不是必须的。 2)字段的名称”age”、”color”、”price”也不是必须的。 如果发送方和接收方都对对象的定义是明晰的,那么字段的名称也不要传递 Protocol Buffers 对象定义 message Car { int32 age = 1; string color = 2; double price = 3; }

Create clone of jackson ObjectMapper Instance

那年仲夏 提交于 2020-12-07 03:42:11
问题 I'm writing a library that needs a com.fasterxml.jackson.databind.ObjectMapper instance. The user of the library should be able to provide the configuration for the ObjectMapper or the ObjectMapper instance itself. But I also add/modify some settings of the serializer without affecting the users ObjectMapper instance. Is there any way to create a copy/clone of ObjectMapper instance? It looks like ObjectMapper clonedInstance = new ObjectMapper(originalMapper.getFactory()) could work. But I'm

Configure FAIL_ON_UNKNOWN_PROPERTIES for each RequestMapping differently in the Controller

陌路散爱 提交于 2020-12-06 12:16:15
问题 I want to handle json to Object conversion differently on different @RequestMapping in my Controller. I believe if we add Jackson dependency in our spring-boot project it handles json to Object conversion and #spring.jackson.deserialization.fail-on-unknown-properties=true property will make sure that conversion will fail if there is some unknown property present in the json (please correct me if I am wrong). Can we tell jackson locally when to fail on unknown properties and when to ignore

springboot xss防护

↘锁芯ラ 提交于 2020-12-04 17:50:18
概述   XSS(Cross Site Script)全称跨站脚本攻击,为了跟CSS区分开来,所以变成了XSS。它允许恶意代码植入到正常的页面中,盗取正常用户的账号密码,诱使用户访问恶意的网站。 攻击   实施XSS攻击必须具备两个条件 向web页面注入恶意代码。 这些恶意代码能够被浏览器执行。 看一个简单的demo,更能清晰的了解什么XSS攻击 @RequestMapping(value = "/demo11",method = RequestMethod.GET) public String demo11(@RequestParam String name,@RequestParam int age) { return name; } 我们输入访问地址 127.0.0.1:8080/demo11?name=<script>alert("正在发动xss攻击")</script><a href="http://www.baidu.com">澳门皇家赌场上线了<a>&age=11 点击诱惑连接 这就是一个简单的反射性XSS攻击,也叫非持久性XSS,将非法代码提交到服务器,服务器解析并响应,而响应中包含XSS代码,最后浏览器解析并执行。另一种XSS攻击也叫持久型XSS,将XSS代码发送到服务器,如果没有后台效验,直接给存上了,在回显时,会从服务起解析加载出来,浏览器发现XSS代码

Does Gson have something like @JsonProperty for methods?

混江龙づ霸主 提交于 2020-12-02 06:35:39
问题 Jackson has the @JsonProperty("name") annotation, which can be applied to methods - the return value of the method will be assigned to the "name" parameter in the JSON. I found out that Gson has the @SerializedName annotation, but that cannot be used with methods. Is there any way to get the @JsonProperty functionality for methods in Gson? 回答1: Try @SerializedName("serialized_fld_name") 回答2: The solution in Gson is a similar annotation called @SerializedName that you can use to provide names

Does Gson have something like @JsonProperty for methods?

浪子不回头ぞ 提交于 2020-12-02 06:33:06
问题 Jackson has the @JsonProperty("name") annotation, which can be applied to methods - the return value of the method will be assigned to the "name" parameter in the JSON. I found out that Gson has the @SerializedName annotation, but that cannot be used with methods. Is there any way to get the @JsonProperty functionality for methods in Gson? 回答1: Try @SerializedName("serialized_fld_name") 回答2: The solution in Gson is a similar annotation called @SerializedName that you can use to provide names