婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av

主頁(yè) > 知識(shí)庫(kù) > golang:json 反序列化的[]和nil操作

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

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

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

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)
}

結(jié)果

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

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

補(bǔ)充:go語(yǔ)言中 json轉(zhuǎn)換--nil

go語(yǔ)言中如果一個(gè)變量的值為nil,是否能否為json?

如果能否轉(zhuǎn)換,轉(zhuǎn)換后的結(jié)果是什么?

下面直接看下例子。

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

結(jié)果輸出為"null"。

也就是說(shuō),凡是值為nil的變量,經(jīng)過(guò)json編碼后都是"null"。例如,未賦值的指針變量、切片slice等:

var ptr *int

var s []int

反過(guò)來(lái),如果一個(gè)json字符串是"null",經(jīng)過(guò)解析后,轉(zhuǎn)換后的值是什么樣呢?

例如,轉(zhuǎn)換為結(jié)構(gòu)體,轉(zhuǎn)換后為結(jié)構(gòu)體變量的默認(rèn)值。

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字符串,轉(zhuǎn)換為slice后,值為[]。

以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教。

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

標(biāo)簽:物業(yè)服務(wù) 電子產(chǎn)品 安康 儋州 遼寧 海南 西雙版納 青海

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《golang:json 反序列化的[]和nil操作》,本文關(guān)鍵詞  golang,json,反,序列化,的,;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問(wèn)題,煩請(qǐng)?zhí)峁┫嚓P(guān)信息告之我們,我們將及時(shí)溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無(wú)關(guān)。
  • 相關(guān)文章
  • 下面列出與本文章《golang:json 反序列化的[]和nil操作》相關(guān)的同類(lèi)信息!
  • 本頁(yè)收集關(guān)于golang:json 反序列化的[]和nil操作的相關(guān)信息資訊供網(wǎng)民參考!
  • 推薦文章
    主站蜘蛛池模板: 边坝县| 贵定县| 沿河| 西林县| 泌阳县| 福建省| 双牌县| 南乐县| 襄城县| 清流县| 昌邑市| 万荣县| 丹寨县| 永平县| 榆树市| 通化市| 灌阳县| 林甸县| 托克逊县| 修武县| 工布江达县| 吉安县| 盖州市| 蒲城县| 砚山县| 明溪县| 饶河县| 依兰县| 鹤岗市| 禹城市| 黎城县| 哈尔滨市| 奉贤区| 平乐县| 乐安县| 沁水县| 万全县| 太谷县| 常州市| 姜堰市| 天柱县|