在 Golang 中访问嵌套的 JSON 元素可以通过以下方式实现:

huangapple go评论80阅读模式
英文:

Golang access nested element on Json

问题

我有以下的golang代码,试图访问数组元素,我的期望是打印"bxar",但是它抛出了错误,有什么想法吗?

package main
    
import (
	"encoding/json"
	"fmt"
)

type Data struct {
	Args struct {
		Foo string
	}
}

func main() {
	in := `[{"args": {"foo": "bar"}},{"args": {"foo": "bxar"}}]`

	var d []Data
	json.Unmarshal([]byte(in), &d)

	fmt.Println("Foo:", d[1].Args.Foo)
	//fmt.Printf("Result: %+v", d)
}
英文:

I have the following golang code which trying to access elements on array my expectation to print bxar ,but it throw error any idea?

package main
    
import (
	"encoding/json"
	"fmt"
)

type Data struct {
	Args struct {
		Foo string
	}
}

func main() {
	in := `[{"args": {"foo": "bar"}},{"args": {"foo": "bxar"}}]}`

	var d []Data
	json.Unmarshal([]byte(in), &d)

	fmt.Println("Foo:", d[1].Args.Foo)
	//fmt.Printf("Result: %+v", d)
}

答案1

得分: 5

这个不起作用的原因是一个拼写错误。在你的 JSON 中有一个多余的 }

之前的代码:

`[{"args": {"foo": "bar"}},{"args": {"foo": "bxar"}}]}`

之后的代码:

`[{"args": {"foo": "bar"}},{"args": {"foo": "bxar"}}]`

请参考这个 playground:https://go.dev/play/p/sL8Cx8lF6WR

英文:

The reason it does not work is a typo. There is one too many } in your JSON:

Before:

`[{"args": {"foo": "bar"}},{"args": {"foo": "bxar"}}]}`

After:

`[{"args": {"foo": "bar"}},{"args": {"foo": "bxar"}}]`

See this playground: https://go.dev/play/p/sL8Cx8lF6WR

huangapple
  • 本文由 发表于 2022年3月15日 01:22:42
  • 转载请务必保留本文链接:https://go.coder-hub.com/71471797.html
匿名

发表评论

匿名网友

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen:

确定