文中所有**,可以在下邊鏈結頁面執行驗證。
package main
import (
"encoding/json"
"fmt"
)// 結構體欄位首字母必須要大寫,否則外部無法訪問,json轉struct也轉不成功
type person struct
func main()
func testjson2struct()
`var person person
json.unmarshal(byte(jsonstr), &person)
fmt.println("person:", person)
}
輸出結果
person:
package main
import (
"encoding/json"
"fmt"
)// 結構體欄位首字母必須要大寫,否則外部無法訪問,json轉struct也轉不成功
type person struct
func main()
func teststruct2json()
fmt.println("p:", p)
// person結構體轉化為對應的json
jsonbytes, err := json.marshal(p)
if err != nil
fmt.println("json串:", string(jsonbytes))
}
輸出結果
p:
json串:
package main
import (
"encoding/json"
"fmt"
)func main()
func testjson2map() `
// 定義map
var mapres map[string]inte***ce{}
// json轉map
if err := json.unmarshal(byte(jsonstr), &mapres); err != nil
fmt.println("mapres:", mapres)
}
輸出結果
mapres: map[age:18 name:xuxiaobai]
package main
import (
"encoding/json"
"fmt"
)func main()
func testmap2json() )
testmap["name"] = "xuxiaobai"
testmap["age"] = 18
testmap["address"] = "北京"
jsonbytes, err := json.marshal(testmap)
if err != nil
fmt.println("testmap轉換成的json串:", string(jsonbytes))
}
輸出結果
testmap轉換成的json串:
轉換用到的方法:
比mapstructure要好用,mapstructure有些字段轉換會失敗。
引數介紹:
testmap["address"] = "北京"
var person person
// map轉struct
if err := gconv.struct(testmap, &person); err != nil
fmt.println("map轉換struct結果:", person)
}輸出結果
map轉換struct結果:
參考:struct轉換
package main
import (
"fmt"
"reflect"
)type person struct
func main()
pmap := teststruct2map(p)
fmt.println("struct轉map結果:", pmap)
}func teststruct2map(obj inte***ce{}) map[string]inte***ce{} )
for i := 0; i < t.numfield(); i++
return data
}
輸出結果
struct轉map結果: map[address:上海 age:20 name:zhangsan]
char, WCHAR, CString之間的轉換
1.char wchar multibytetowidechar int convertchartowchar char pmultibytestr,wchar pwidecharstr,size t bytesofwidecharstr 2.wchar char widechartomultiby...
CvMat Mat IplImage之間的轉換
opencv中常見的與影象操作有關的資料容器有mat,cvmat和iplimage,他們都可以顯示影象,但是,mat型別側重於計算,數學性較高。而cvmat和iplimage型別更側重於 影象 在opencv2.0之前,opencv的庫函式是完全用c實現的。其中mat是opencv和c 的介面矩陣類...
Gbps Mbps Bps bps之間的進製轉換
首先要講述下位 bit 與位元組 b 的區別 二者有著本質的區別應該注意 1b 1bit 1b 1b 也就是我們常說的乙個位元組等於八位二進位制數網路傳輸速度單位 mbps 即 milionbit pro second 百萬位每秒 kbps 即 kilobit pro second 千位每秒 bps...