当前位置:首页 > Golang > 正文内容

Go slice初始化转换json

周伯通2020-11-30Golang232

        切片slice的声明和初始化 , 如果我们只是单纯的声明 var list []string  , 那么list现在是nil  , 转换成json后会变成null,
声明后使用了append函数增加了数据  , 那么就是正常的列表了. 我们看一段代码示例:

package main

import (
   "encoding/json"
   "fmt"
)

func main() {
   var list []string
   bytes, e := json.Marshal(list)
   if e != nil {
      fmt.Println("json序列化失败", e.Error())
   } else {
      fmt.Println(string(bytes))
   }
   //可以使用下面的形式初始化0个元素的切片slice ,  转换成json会是[]
   var list2 = []string{} //字面量初始化
   //或者
   //list:=make([]string,0)//make函数初始化
   bytes2, e := json.Marshal(list2)
   if e != nil {
      fmt.Println("json序列化失败", e.Error())
   } else {
      fmt.Println(string(bytes2))
   }

   // 在切片里边定义map类型
   mSlice := make([]map[string]interface{}, 0)
   //mSlice = append(mSlice, map[string]interface{}{"name": "babala"})
   bytes3, e := json.Marshal(mSlice)
   if e != nil {
      fmt.Println("json序列化失败", e.Error())
   } else {
      fmt.Println(string(bytes3))
   }
}


输出:

null
[]
[]

json_Marshal函数可以对切片,结构体和map转json.

    扫描二维码推送至手机访问。

    版权声明:本文由周伯通的博客发布,如需转载请注明出处。

    本文链接:http://zhoubotong.site/post/16.html

    分享给朋友:

    相关文章

    go协程全局变量和局部变量

    大家可能经常会用到类似如下代码片段:package main import (    "fmt"   ...

    关于Go的内存对齐

    关于Go的内存对齐

    今天看到群里有人提到内存对齐的东西,网上查阅了golang相关的内存对齐资料,特意整理了下,希望对大家有帮助。看完这篇介绍。我们将获得以下知识点:1.什么是内存对齐?2.为什么需要内存对齐?3.如何进...

    Go map定义的几种方式以及修改技巧

    直入正题,我们看下以下代码:package main import (    "encoding/json"  ...

    Go 自定义error错误

        Go的error比较灵活.但是自身对error处理的机制有不太好用,我们可以自定义错误输出: 只要所有实现了 Error()&nbs...

    Go常用排序算法

    常用的排序算法各种语言相同,这里大致介绍下go的常用排序,废话不多说,直入正题:冒泡排序package main import (    &q...

    发表评论

    访客

    看不清,换一张

    ◎欢迎参与讨论,请在这里发表您的看法和观点。