例子1:把字符串轉換成結構體:{"FromUid":"100","FromName":"HANASHAN"}
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把 [{"Id2":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))
}