給需要設定的json欄位程式設計客棧初試化你想設定的值就ok。
比如我想讓string型別的字段的預設值是,而不是nil,那我就make(string, 0)賦值給該字段。
轉成json輸出後,就是。
這是沒有初始化的**。預設值是nil。
//定義自己的路由器
type mymux1 struct
//實現http.handler這個介面的唯一方法
//只初始化test1欄位
jsontest.test1 = "value1"
jsondata,_ := json.marshal(jsontest)
w.header().set("content-type", "application/json")
fmt.fprintf(w, "%s", jsondata)
}func main()
//基於tcp服務監聽808埠
ln, err := net.listen("tcp", ":8089")
if err != nil
//呼叫http.serve(l net.listener, handler handler)方法,啟動監聽
}示例結果如下圖1所示,欄位test2的預設值是nil。
以下是對string欄位初始化的**。預設輸出值是。
}示例結果如下圖2所示。
其他字段想要設定預設輸出值,只需要對其進行相應的初始化即可。
補充:golang json unmarshal的時候,在key為空的時候給予預設值
我就廢話不多說了,大家還是直接看**吧~程式設計客棧
package main
import (
"fmt"
"encoding/json"
)type test struct
func (t *test) unmarshaljson(data byte) error
_ = json.unmarshal(data, test)
*t = test(*test)
return nil
}var example byte = byte(`[, , ]`)
func main()
_ = json.unmarshal(example, &out)
fmt.print(out)}結果
&[ ]
可以看到 在key沒有的情況下可以指定對應的值,這樣就可以了。
本文標題: go語言設定json的預設值操作
本文位址:
MYSQL datetime設定預設值
使用decimal代替float和double儲存精確浮點數 如果用float簡單的浮點數插入操作,居然會產生偏差,坑爹啊由於timestamp是從1970開始的,如果要記錄出生日期,還是需要用datetime 當然,在一般情況下,推薦使用timestamp alter table project ...
spring Value 設定預設值
原文 value 的作用不用說 大家都知道 註解模式下 讀取配置檔案 注入屬性值 mq位址 value private string namesrvaddr 上面的是乙個標著的 value 註解 如果配置檔案中沒有設定 namesrvaddr spring 在啟動的時候講報錯。設定預設值很簡單 va...
Value設定預設值
使用 value註解將變數進行自動注入的時候,經常會出現的乙個問題就是我們可能會由於在配置引數中忘記設定該引數造成整個專案報錯,其實我們可以通過給被 value註解作用的變數進行注入的時候如果沒有找到該配置引數時設定乙個預設值,相當於是乙個兜底的方案 沒有預設值的用法 value private s...