主頁 > 知識庫 > golang:json 反序列化的[]和nil操作

golang:json 反序列化的[]和nil操作

熱門標簽:地圖標注免費定制店 湛江crm外呼系統(tǒng)排名 仙桃400電話辦理 寧波語音外呼系統(tǒng)公司 宿遷便宜外呼系統(tǒng)代理商 重慶慶云企業(yè)400電話到哪申請 上海極信防封電銷卡價格 不封卡外呼系統(tǒng) 鄭州智能語音電銷機器人價格

我就廢話不多說了,大家還是直接看代碼吧~

package main
import (
	"encoding/json"
	"log"
)
type JS struct {
	A []string
}
func main() {
	v1 := JS{}
	v2 := JS{A: []string{}}
	o1, err := json.Marshal(v1)
	log.Println(string(o1), err)
	o2, err2 := json.Marshal(v2)
	log.Println(string(o2), err2)
}

結果

2019/01/07 18:13:26 {"A":null} nil>

2019/01/07 18:13:26 {"A":[]} nil>

補充:go語言中 json轉換--nil

go語言中如果一個變量的值為nil,是否能否為json?

如果能否轉換,轉換后的結果是什么?

下面直接看下例子。

package main
import (
    "encoding/json"
    "fmt"
)
func main() {
    marshalTest()
}
func marshalTest() {
  b, err := json.Marshal(nil)
  if err != nil {
    fmt.Println("json.Marshal failed:", err)
    return
  }
  fmt.Println("result:", string(b))
}

output:

result: null

結果輸出為"null"。

也就是說,凡是值為nil的變量,經過json編碼后都是"null"。例如,未賦值的指針變量、切片slice等:

var ptr *int

var s []int

反過來,如果一個json字符串是"null",經過解析后,轉換后的值是什么樣呢?

例如,轉換為結構體,轉換后為結構體變量的默認值。

package main
import (
    "encoding/json"
    "fmt"
)
func main() {
    unmarshalTest()
}
type Apple struct {
    Size int
    Addr string
    Num *int
}
func unmarshalTest() {
    value := []byte("null")
    a := Apple{}
    if err := json.Unmarshal(value, a); err != nil {
        fmt.Println("json.Unmarshal failed:", err)
        return
    }
    fmt.Printf("result:%+v\n", a)
}

output:

result:{Size:0 Addr: Num:nil>}

如果"null"作為json字符串,轉換為slice后,值為[]。

以上為個人經驗,希望能給大家一個參考,也希望大家多多支持腳本之家。如有錯誤或未考慮完全的地方,望不吝賜教。

您可能感興趣的文章:
  • golang json數(shù)組拼接的實例
  • 在golang xorm中使用postgresql的json,array類型的操作
  • golang中json小談之字符串轉浮點數(shù)的操作
  • golang 實現(xiàn)json類型不確定時的轉換
  • golang中json的omitempty使用操作
  • 解決Golang json序列化字符串時多了\的情況
  • golang中json和struct的使用說明

標簽:物業(yè)服務 電子產品 安康 儋州 遼寧 海南 西雙版納 青海

巨人網絡通訊聲明:本文標題《golang:json 反序列化的[]和nil操作》,本文關鍵詞  golang,json,反,序列化,的,;如發(fā)現(xiàn)本文內容存在版權問題,煩請?zhí)峁┫嚓P信息告之我們,我們將及時溝通與處理。本站內容系統(tǒng)采集于網絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《golang:json 反序列化的[]和nil操作》相關的同類信息!
  • 本頁收集關于golang:json 反序列化的[]和nil操作的相關信息資訊供網民參考!
  • 推薦文章