シリアライズとデシリアライズJSON03 GO言語--- JSONファイル

メインパッケージ

のインポート(
	"符号化/ JSON" 
	"FMT" 
	"OS" 

Human2構造体{入力
	名文字列
	年齢INT 
	人民元のfloat64 
	性別BOOL 
	趣味[]の文字列
} 

NewHuman2 FUNC(名前ストリング、年齢INT、人民元のfloat64、趣味[]の文字列) * Human2 { 
	人間:=新しい(Human2)
	human.Name =名
	human.Age =年齢
	human.Rmb = RMB 
	human.Hobbies =趣味
	戻りヒト
} 

/ *编码结构体、地図、切片到JSON文件* / 
FUNC main061( ){ 
	dstFile、_:= os.OpenFile( ``编码文件、os.O_CREATE | os.O_WRONLY | os.O_TRUNC、0666)
	延期dstFile.Close()

	エンコーダ:= json.NewEncoder(dstFile)

	zqd:= NewHuman2( "張全卵"、20,0.5、[]の文字列{ " 煙"、 "飲料"、 "ホットヘッド"})
	ZLD:= NewHuman2( "張LIA卵"、30、0.5、[]文字列{「煙」、「ドリンク」、「ホットヘッド」})

	//データマップ:=メイク(地図[文字列]インターフェース{})
	//データマップ[「タイトル」] =「東Zupančič文字コロンビアレコード月に選出最高の" 
	// DATAMAP [" DATE "] =" 2019年12月4日" 
	// DATAMAP ["著者"] ="エクストリームパパラッチ" 
	// DATAMAP ["読者「] = 99999999人の

	人間:=メイク([] Human2 、0)
	人間=アペンド(ヒト、ZQD *、* ZLD)

	ERR:= encoder.Encode(ヒト)
	!IF ERR =ゼロ{ 
		fmt.Println( "失敗する人間のJSONファイルをコードする、ERR =" ERR)
		リターン
	} 
	fmt.Println(「成功するために人間をコードするJSONファイル。」) 
} 

/ *デコードJSON GOデータファイル* / 
FUNCメイン(){ 
	//ファイルを開くを符号化する
	SRCFILE、_:= os.Open( ``エンコードされたファイル) 
	延期srcFile.Close()
 
	照合するJSON言語データ構造でGOを作成します// 
	=メイク([] Human2,0):// retSliceを
	retSlice:=メイク([]地図[文字列]インターフェース{}、0)

	//デコーダJSONファイルを作成
	= json.NewDecoder(SRCFILE):デコーダ

	//でGOアドレスにデータファイルをデコードデータ
	ERR:= decoder.Decode(&retSlice)
	エラーに対する//チェック
	!IF ERR = nilの{ 
		fmt.Println( " JSONファイルを失敗したデコードし、ERR = "ERR)
		リターン
	} 
	//結果印刷
	デコード成功」、retSlice)fmt.Printlnを(" 
}

  

おすすめ

転載: www.cnblogs.com/yunweiqiang/p/11980694.html