go json文字列を構造体に変換し、json文字列配列をスライスに変換

1444 ワード

例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[{"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))
}