golang中json的omitempty使用操作
程序员文章站
2022-06-25 08:02:35
我就废话不多说了,大家还是直接看代码吧~如果没有omitempty,该字段是会显示的。补充:golang omitempty实现嵌套结构体的省略输出golang在处理json转换时,对于标签omite...
我就废话不多说了,大家还是直接看代码吧~
如果没有omitempty,该字段是会显示的。
补充:golang omitempty实现嵌套结构体的省略输出
golang在处理json转换时,对于标签omitempty定义的field,如果给它赋得值恰好等于空值(比如:false、0、""、nil指针、nil接口、长度为0的数组、切片、映射),则在转为json之后不会输出这个field。
那么,针对结构体中嵌套结构体,如果嵌套结构体为空,是否也会忽略?如果要忽略空结构体输出,怎么处理?
情况一:匿名结构体:使用omitempty修饰该匿名结构体中的字段,那么当为空时不会输出
输出:
{"name":"testbook","price":0}
情况二:非匿名结构体
输出:
{"name":"testbook","price":0,"author":{}}
可以发现,没有给嵌套结构体赋值时,会打印该嵌套结构体的空结构体。这是因为该空结构体不属于omitempty能识别的空值(false、0、""、nil指针、nil接口、长度为0的数组、切片、映射)。但若期望该嵌套结构体的空结构体也不会输出,可以通过指针实现。
输出:
{"name":"testbook","price":0}
以上为个人经验,希望能给大家一个参考,也希望大家多多支持。如有错误或未考虑完全的地方,望不吝赐教。
推荐阅读
-
在Python中操作字符串之startswith()方法的使用
-
在Python中操作列表之List.append()方法的使用
-
在Python中操作列表之list.extend()方法的使用
-
js与jQuery实现获取table中的数据并拼成json字符串操作示例
-
详解JSP中的语句对象Statement操作MySQL的使用实例
-
MySQL5.7中的JSON基本操作指南
-
.NET中开源文档操作组件DocX的介绍与使用
-
JSP中的PreparedStatement对象操作数据库的使用教程
-
Linux系统中强大的文本操作命令tr的使用讲解
-
Java中数组操作 java.util.Arrays 类常用方法的使用