Go官方包:encodinng常用方法

1、json

1、Marshal:对象转换成json串

1、规则

  1. 在tag里面用json:"name"可以定义别名,这个正常是为了保证外部进来的小写,而对外声明的首字母大写(非私有)
  2. tag中有json:"-"的数据不会被转出,如果带别名的-是会被正常转出的,比如说:json:"value,-"
  3. 结构体的私有属性不能被转换
  4. 时间转换之后会采用默认格式
  5. 通过自定义方法可以实现时间格式的自定义,下面详细讲
  6. 在字段tag中加上,omitempty,如果是空或者默认值不会被转换出去

转换的结果如下:
在这里插入图片描述

2、测试代码

看一下测试代码:

	/*
	 *  @Author : huangzj
	 *  @Time : 2020/3/27 15:38
	 *  @Description:
	 */	
	package main
	import (
		"encoding/json"
		"fmt"
		"time"
	)
	
	type Time time.Time
	
	const (
		timeFormart = "2006-01-02 15:04:05"
	)
	
	type json1 struct {
   
		Name      string    `json:"name"`       //测试一下别名
		Value     string    `json:"value,-"`    //测试一下,有别名也有 - 能被转换
		Value1    string    `json:"-"`          //测试一下,只有 - 能被转换
		method1   string    `json:"method1"`    //测试一下私有属性不能被转换
		Now       time.Time `json:"now"`        //测试一下时间字段可否被转换
		Now1      Time      `json:"now1"`        //自定义时间转换的格式
		Age       int       `json:",omitempty"` //测试一下 omitempty 值为空不能被转换
		AgeString string    `json:",omitempty"` //测试一下字符串 omitempty 值为空 不能被转换
		Length    int       `json:",String"`    //测试一下tag里面带有string的自动转换
	}
	
	func jsonTest() {
   
		j := json1{
   
			Name:    "name",
			Value:   "value",
			Value1:  
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

了-凡

你的鼓励是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值