go json文字列を構造体に変換し、json文字列配列をスライスに変換
1444 ワード
例1:文字列を構造体に変換する:{"FromUID":"100","FromName":"HANASHAN"}
例2[{"Id 2":100,"Title":"木華黎"},{"Id":200,"Title":"耶律楚才"},{"Id":300,"Title":"納呀","Test":100}]をgoのスライスに変換する
package main
import (
"fmt"
"encoding/json"
)
//
type receiveMessage struct{
FromUid string // uid
FromName string //
}
func main(){
str := []byte(`{"FromUid":"100","FromName":"HANASHAN"}`)
var revMsg receiveMessage
err := json.Unmarshal([]byte(str),&revMsg)
fmt.Println(err)
fmt.Println(revMsg)
}
例2[{"Id 2":100,"Title":"木華黎"},{"Id":200,"Title":"耶律楚才"},{"Id":300,"Title":"納呀","Test":100}]をgoのスライスに変換する
package main
import (
"encoding/json"
"fmt"
"reflect"
)
//
type articles struct{
Id int // id
Title string //
}
func main(){
//json ,
articleStrings := `[{"Id2":100,"Title":" "},{"Id":200,"Title":" "},{"Id":300,"Title":" ","Test":100}]`
var articleSlide []map[string]interface{}
multiErr := json.Unmarshal([]byte(articleStrings),&articleSlide)
if multiErr!=nil{
fmt.Println(" :",multiErr)
}
for k,v:=range articleSlide{
fmt.Println(" ",k," :",v,v["Id"],v["Title"])
}
fmt.Println(reflect.TypeOf(articleSlide))
}