zoukankan      html  css  js  c++  java
  • GO语言的JSON02---反序列化

    package main
    
    import (
    	"encoding/json"
    	"fmt"
    )
    
    type Human struct {
    	Name string
    	Age int
    	Rmb float64
    	Gender bool
    	Hobbies []string
    }
    
    var jsonStr = `{
    		"name":"梅川酷子",
    		"age":40,
    		"rmb":12345.123,
    		"gender":false,
            "hobbies":["抽烟","喝酒","烫头"]
    	}`
    
    var jsonStr2 = `[
    {
    		"name":"梅川酷子",
    		"age":40,
    		"rmb":12345.123,
    		"gender":false,
            "hobbies":["抽烟","喝酒","烫头"]
    },
    {
    		"name":"朴成幸",
    		"age":40,
    		"rmb":12345.123,
    		"gender":false,
            "hobbies":["抽烟","喝酒","烫头"]
    }
    ]`
    
    //将json反序列化为Map
    func main051() {
    	retMap := make(map[string]interface{})
    	err := json.Unmarshal([]byte(jsonStr), &retMap)
    	if err != nil{
    		fmt.Println("反序列化失败,err=",err)
    		return
    	}
    	fmt.Println(retMap)
    }
    
    //将json数组反序列化为切片
    func main052() {
    	retSlice := make([]map[string]interface{},0)
    	err := json.Unmarshal([]byte(jsonStr2), &retSlice)
    	if err != nil{
    		fmt.Println("反序列化失败,err=",err)
    		return
    	}
    	fmt.Println(retSlice)
    }
    
    /*将json对象反序列化为结构体*/
    func main053() {
    	human := new(Human)
    	err := json.Unmarshal([]byte(jsonStr), human)
    	if err != nil{
    		fmt.Println("反序列化失败,err=",err)
    		return
    	}
    	fmt.Println(human)
    }
    
    /*将json数组反序列化为切片嵌套结构体*/
    func main() {
    	retSlice := make([]Human, 0)
    	err := json.Unmarshal([]byte(jsonStr2), &retSlice)
    	if err != nil{
    		fmt.Println("反序列化失败,err=",err)
    		return
    	}
    	fmt.Println(retSlice)
    }
    

      

  • 相关阅读:
    Python语言程序设计(1)--实例1和基本知识点
    前端学习笔记--函数
    知乎推荐书籍整理
    第六周周总结
    第五周总结
    第四周周总结
    第三周周总结
    第二周总结
    第一周总结
    项目目标
  • 原文地址:https://www.cnblogs.com/yunweiqiang/p/11973804.html
Copyright © 2011-2022 走看看