Go解析Json文件

Posted liy36

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Go解析Json文件相关的知识,希望对你有一定的参考价值。

json文件内容(test.json)

{
  "args": {}, 
  "data": "", 
  "files": {}, 
  "form": {
    "age": "18", 
    "name": "liy"
  }, 
  "headers": {
    "Accept-Encoding": "gzip", 
    "Content-Length": "30", 
    "Content-Type": "application/x-www-form-urlencoded", 
    "Host": "httpbin.org", 
    "User-Agent": "Go-http-client/1.1", 
    "X-Amzn-Trace-Id": "Root=1-60d5712e-376038381773f32a0ad66c1c"
  }, 
  "json": null, 
  "origin": "11.22.33.44", 
  "url": "http://httpbin.org/post"
}

代码如下(go 1.16.5 demo.go)

package main

import (
	"encoding/json"
	"fmt"
	"io/ioutil"
)

type KV map[string]string

// load json file
type result struct {
	Args    KV     `json:"args"`
	Data    string `json:"data"`
	Files   KV     `json:"files"`
	Form    KV     `json:"form"`
	Headers KV     `json:"headers"`
	Json    string `json:"json"`
	Origin  string `json:"origin"`
	Url     string `json:"url"`
}

func printMap(m KV) {
	for k, v := range m {
		fmt.Println(k, v)
	}
}
func loadJson() {
	f, err := ioutil.ReadFile("test.json")
	if err != nil {
		fmt.Println(err)
		return
	}
	var config result
	json.Unmarshal(f, &config)
	printMap(config.Args)
	fmt.Println(config.Data)
	printMap(config.Files)
	printMap(config.Form)
	printMap(config.Headers)
	fmt.Println(config.Json)
	fmt.Println(config.Origin)
	fmt.Println(config.Url)
}

func main() {
	loadJson()
}


编译,运行

go run demo.go

以上是关于Go解析Json文件的主要内容,如果未能解决你的问题,请参考以下文章

2 Go语言JSON与XML解析与表单操作

2 Go语言JSON与XML解析与表单操作

2 Go语言JSON与XML解析与表单操作

2 Go语言JSON与XML解析与表单操作

Go 要如何才能解释的清!和 Json 之间的种种映射关系! 「含解决方案 & 代码实现,建议收藏!」

Go 要如何才能解释的清!和 Json 之间的种种映射关系! 「含解决方案 & 代码实现,建议收藏!」