首页 > 其他分享 >Go语言中的omitempty字段

Go语言中的omitempty字段

时间:2023-06-08 15:32:06浏览次数:25  
标签:p1 Name err fmt json 字段 Go omitempty Age

package main

import (

   "encoding/json"

   "fmt"

)

type Person struct {

   Name string `json:"name"`

   Age  int    `json:"age"`

   Addr string `json:"addr,omitempty"`

}

func main() {

   p1 := Person{

       Name: "taoge",

       Age:  30,

   }


   data, err := json.Marshal(p1)

   if err != nil {

       panic(err)

   }

   fmt.Printf("%s\n", data)

   fmt.Println(p1.Name, p1.Age, p1.Addr)

   p2 := Person{

       Name: "Cang Laoshi",

       Age:  18,

       Addr: "Japan",

   }

   data2, err := json.Marshal(p2)

   if err != nil {

       panic(err)

   }

   fmt.Printf("%s\n", data2)

   

   fmt.Println(p2.Name, p2.Age, p2.Addr)

}

结果:

{"name":"taoge","age":30}

taoge 30

{"name":"Cang Laoshi","age":18,"addr":"Japan"}

Cang Laoshi 18 Japan

可以看到,有了omitempty后,如果addr为空, 则生成的json中没有addr字段。


标签:p1,Name,err,fmt,json,字段,Go,omitempty,Age
From: https://blog.51cto.com/lookingdream/6440657

相关文章

  • Django——ORM
    Django——ORM一、模板'parentloop':外层循环'counter0':当前循环获得数据的索引,索引是从0开始计算'counter':当前循环获得数据的索引,索引是从1开始计算'revcounter':当前反向循环获得数据的索引,索引是从1开始计算'revcounter0':当前反向循环获得数据的索引,索......
  • Django——数据库
    Django——数据库django在操作数据库1、配置好要连接的数据库2、定义模型类3、迁移数据库4、使用类对象方式操作数据库数据迁移的命令pythonmanage.pymakemigrationspythonmanage.pymigrate字段的增删改classstu(models.Model):#迁移结束之后,在数据库中......
  • Django——数据库2
    Django——数据库2添加数据#添加数据#1、使用create方法#data=Students.objects.create(name='阿宸',age=26,gender='2',height=1.79)#2、直接写入数据,写入完之后,必须使用save方法保存data=Students(name='叶鹏飞',age=19,gender='2',height=1.......
  • gorm的使用
    当涉及到数据库操作时,Golang中的GORM是一个非常流行的ORM(对象关系映射)库。它提供了简洁而强大的API,使得数据库操作变得更加容易和高效。在本篇技术分享文章中,我们将探讨GORM的一些核心功能和用法。安装和初始化首先,我们需要安装GORM。在终端中运行以下命令:goget-u......
  • Django——模板
    Django——模板模板:django对模板文件没有特别大的限制,html,txt,没有类型的文件。django提供一种动态生成html页面的快捷方式,也就是模板。模板语言(DTL)1、配置模板pycharm创建django项目会自动将我们的模板templates配置好。#django的默认模板引擎;django也支持并且内......
  • goland不提交git,同步代码到开发机,设置步骤
    1.Tools->Deployment->Configuration    2.Tools->Deployment->Uploadxxx ......
  • golang导入私有仓库报错:“server response: not found:xxx: invalid version: git ls
    1.问题:goget导入私有仓库报错➜goget"devops.gitlab.xxx.com/test/kafka-utils"go:devops.gitlab.xxx.com/test/[email protected]:verifyinggo.mod:devops.gitlab.xxx.com/testo/[email protected]/go.mod:readinghttps://goproxy.cn/sumdb/sum.golang.org/......
  • go json、yaml解码
    func GetFoo(ctx context.Context) (*T, error) {  req, err := http.NewRequest("GET", "http://foo/t.json", nil)  if err != nil {    return nil, err  }  req = req.WithContext(ctx)  res, err := http.DefaultClient.Do(req)  if e......
  • MQTT协议及其在Golang中的实现
    引言:在物联网(IoT)领域中,设备之间的通信是至关重要的。为了实现设备之间的高效、轻量级通信,MQTT(MessageQueuingTelemetryTransport)协议被广泛采用。MQTT是一种基于发布/订阅模式的消息传输协议,被设计为简单、轻量级且易于实现。本文将介绍MQTT协议的核心概念,并演示如何使用Gola......
  • 使用SQL中的update更新多个字段值
    使用SQL中的update更新多个字段值,set后面的条件要用逗号不能用andset后面的多个条件之间没有关联也不可以有关联,所以就不能用and了;where条件后面可以为and如:updatetablesetsex='男',name='张三'whereid=1;         正确updatetablesetsex='男'and......