首页 > 后端开发 > Golang > 如何使用 `encoding/json` 包在 Go 中解析 JSON 数组?

如何使用 `encoding/json` 包在 Go 中解析 JSON 数组?

Patricia Arquette
发布: 2024-11-30 22:59:12
原创
954 人浏览过

How to Parse JSON Arrays in Go using the `encoding/json` Package?

使用 JSON 包解析 Go 中的 JSON 数组

问题

如何使用编码解析表示 Go 中 JSON 数组的字符串/json 包?

type JsonType struct {
    Array []string
}

func main() {
    dataJson := `["1","2","3"]`
    arr := JsonType{}
    unmarshaled := json.Unmarshal([]byte(dataJson), &arr.Array)
    log.Printf("Unmarshaled: %v", unmarshaled)
}
登录后复制

回答

提供的代码从 Unmarshal 返回错误值。要正确解析 JSON 数组,请使用以下代码:

err := json.Unmarshal([]byte(dataJson), &arr)
登录后复制

此外,您可以通过使用切片而不是自定义结构来简化代码:

package main

import (
    "encoding/json"
    "fmt"
)

func main() {
    dataJson := `["1","2","3"]`
    var arr []string
    err := json.Unmarshal([]byte(dataJson), &arr)
    fmt.Println(err)
    fmt.Println(arr)
}
登录后复制

此代码将输出:

<nil>
[1 2 3]
登录后复制

背景

将指针传递给 Unmarshal 启用该函数减少或消除内存分配。此外,在处理上下文中,调用者可以重复使用相同的值,进一步节省分配。

以上是如何使用 `encoding/json` 包在 Go 中解析 JSON 数组?的详细内容。更多信息请关注PHP中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板