Golang

关注公众号 jb51net

关闭
首页 > 脚本专栏 > Golang > go 字符串转换为json数据

go语言转换json字符串为json数据的实现

作者:绛洞花主敏明

本文主要介绍了go语言转换json字符串为json数据的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧

在 Go 语言中,可以使用标准库 encoding/json 中的 json.Unmarshal 函数将 JSON 字符串转换为 JSON 数据(通常是 Go 中的结构体或 map 类型)。以下是一个简单的示例:

示例代码

package main

import (
	"encoding/json"
	"fmt"
	"log"
)

// 定义一个结构体,用于映射 JSON 数据
type Person struct {
	Name    string `json:"name"`
	Age     int    `json:"age"`
	Hobbies []string `json:"hobbies"`
}

func main() {
	// JSON 字符串
	jsonStr := `{
		"name": "John",
		"age": 30,
		"hobbies": ["reading", "coding"]
	}`

	// 创建一个结构体变量用于存储解析后的数据
	var person Person

	// 将 JSON 字符串解析为结构体
	err := json.Unmarshal([]byte(jsonStr), &person)
	if err != nil {
		log.Fatalf("Error unmarshalling JSON: %v", err)
	}

	// 打印解析后的数据
	fmt.Printf("Name: %s\n", person.Name)
	fmt.Printf("Age: %d\n", person.Age)
	fmt.Printf("Hobbies: %v\n", person.Hobbies)
}

代码说明

输出结果

运行上述代码后,输出如下:

Name: John
Age: 30
Hobbies: [reading coding]

使用 map 解析 JSON

如果 JSON 结构不固定,也可以使用 map[string]interface{} 来解析 JSON 数据,示例如下:

package main

import (
	"encoding/json"
	"fmt"
	"log"
)

func main() {
	jsonStr := `{
		"name": "John",
		"age": 30,
		"hobbies": ["reading", "coding"]
	}`

	// 使用 map 存储解析后的数据
	var data map[string]interface{}

	// 解析 JSON
	err := json.Unmarshal([]byte(jsonStr), &data)
	if err != nil {
		log.Fatalf("Error unmarshalling JSON: %v", err)
	}

	// 访问 map 中的数据
	fmt.Printf("Name: %v\n", data["name"])
	fmt.Printf("Age: %v\n", data["age"])
	fmt.Printf("Hobbies: %v\n", data["hobbies"])
}

这种方式更加灵活,但需要通过类型断言来访问具体字段的值。

到此这篇关于go语言转换json字符串为json数据的实现的文章就介绍到这了,更多相关go 字符串转换为json数据内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

您可能感兴趣的文章:
阅读全文