@JsonIgnoreProperties(ignoreUnknown = true) 说明

发布时间:2024-12-09 18:41

使用文件管理软件如Navicat、Acronis True Image进行高级管理 #生活技巧# #组织技巧# #文件管理系统#

最新推荐文章于 2024-10-21 16:21:28 发布

Zonson9999 于 2019-05-20 17:30:38 发布

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。

static class Book {

String name;

String price;

}

例一

这样一个类,如果json 字符串中的字段数量多于类的字段,如:

String bookJson3 = "{\"name\":\"d2\", \"price\":\"1\", \"sn\":\"222\"}";

Book b3 = mapper.readValue(bookJson3, Book.class);

那么报错如下:

com.fasterxml.jackson.databind.exc.UnrecognizedPropertyException: Unrecognized field

"sn" (class com.example.demo.DemoApplicationTests2$Book),

not marked as ignorable (2 known properties: "price", "name"])

at [Source: (String)"{"name":"d2", "price":"1", "sn":"222"}"; line: 1, column: 34]

(through reference chain: com.example.demo.DemoApplicationTests2$Book["sn"])

给Book 类增加注解:

@JsonIgnoreProperties(ignoreUnknown = true)

可以解决这个问题。

例二

如果 json 字符串中的字段少了是可以正常工作的,如

String bookJson = "{\"name\":\"dd\"}";

Book b = mapper.readValue(bookJson, Book.class);

System.out.println(b.name);

System.out.println(b.price);

输出为:

dd

null

例三

b = new Book();

b.name = "hhg";

System.out.println(mapper.writeValueAsString(b));

以上代码可以正常工作,输出为:

{"name":"hhg","price":null}

网址:@JsonIgnoreProperties(ignoreUnknown = true) 说明 https://www.yuejiaxmz.com/news/view/427130

相关内容

subprocess.call(cmd, shell=True)
inplace=True (原地操作)
@Builder(toBuilder=true) 使用
mysql 连接url中useUnicode=true&characterEncoding=UTF
用Response.Buffer=True为程序加速
Spring定时任务注解说明
为什么Java中“1000==1000”为false,而”100==100“为true?
CommonDialog 的取消 CommonDialog1.CancelError = True
python的print(flush=True)实现动态loading......效果
.NET中TextBox控件设置ReadOnly=true后台取不到值三种解决方法

随便看看