• 设为首页
  • 收藏本站
  • 积分充值
  • VIP赞助
  • 手机版
  • 微博
  • 微信
    微信公众号 添加方式:
    1:搜索微信号(888888
    2:扫描左侧二维码
  • 快捷导航
    福建二哥 门户 查看主题

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

    发布者: 琛瑞6678 | 发布时间: 2025-8-14 08:47| 查看数: 67| 评论数: 0|帖子模式

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

    示例代码
    1. package main

    2. import (
    3.         "encoding/json"
    4.         "fmt"
    5.         "log"
    6. )

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

    13. func main() {
    14.         // JSON 字符串
    15.         jsonStr := `{
    16.                 "name": "John",
    17.                 "age": 30,
    18.                 "hobbies": ["reading", "coding"]
    19.         }`

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

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

    27.         // 打印解析后的数据
    28.         fmt.Printf("Name: %s\n", person.Name)
    29.         fmt.Printf("Age: %d\n", person.Age)
    30.         fmt.Printf("Hobbies: %v\n", person.Hobbies)
    31. }
    复制代码
    代码说明

    • 定义结构体

      • 使用
        1. struct
        复制代码
        定义一个与 JSON 数据结构对应的 Go 结构体。
      • 使用
        1. json:"key"
        复制代码
        标签来指定 JSON 中的键与结构体字段的映射关系。

      1. json.Unmarshal
      复制代码
      函数

        1. json.Unmarshal(data []byte, v interface{}) error
        复制代码


          1. data
          复制代码
          是 JSON 字符串的字节切片。
          1. v
          复制代码
          是目标变量,用于存储解析后的数据。
        • 如果解析成功,
          1. v
          复制代码
          中会包含 JSON 数据;如果失败,会返回错误。


    • 错误处理

      • 如果 JSON 格式错误或结构体字段不匹配,
        1. json.Unmarshal
        复制代码
        会返回错误。

    输出结果
    运行上述代码后,输出如下:
    1. Name: JohnAge: 30Hobbies: [reading coding]
    复制代码
    使用 map 解析 JSON

    如果 JSON 结构不固定,也可以使用
    1. map[string]interface{}
    复制代码
    来解析 JSON 数据,示例如下:
    1. package main

    2. import (
    3.         "encoding/json"
    4.         "fmt"
    5.         "log"
    6. )

    7. func main() {
    8.         jsonStr := `{
    9.                 "name": "John",
    10.                 "age": 30,
    11.                 "hobbies": ["reading", "coding"]
    12.         }`

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

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

    20.         // 访问 map 中的数据
    21.         fmt.Printf("Name: %v\n", data["name"])
    22.         fmt.Printf("Age: %v\n", data["age"])
    23.         fmt.Printf("Hobbies: %v\n", data["hobbies"])
    24. }
    复制代码
    这种方式更加灵活,但需要通过类型断言来访问具体字段的值。
    到此这篇关于go语言转换json字符串为json数据的实现的文章就介绍到这了,更多相关go 字符串转换为json数据内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

    来源:互联网
    免责声明:如果侵犯了您的权益,请联系站长(1277306191@qq.com),我们会及时删除侵权内容,谢谢合作!

    最新评论

    QQ Archiver 手机版 小黑屋 福建二哥 ( 闽ICP备2022004717号|闽公网安备35052402000345号 )

    Powered by Discuz! X3.5 © 2001-2023

    快速回复 返回顶部 返回列表