如何使用无法在结构体:GOlang中捕获为`json`的动态关键字解组jSON [英] How to Unmarshal jSON with dynamic key which can't be captured as a `json` in struct: GOlang

查看:212
本文介绍了如何使用无法在结构体:GOlang中捕获为`json`的动态关键字解组jSON的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

  type X struct {
字符串`json:a_known_string`
B字符串`json:b_known_string`
}



jsnStr:= [从文件读入并打印出来确认]

它是:

  {
任意字符串:{
a_known_string:某个值,
b_known_string:另一个值
}
}

只是结构体,我可以:

pre code $ var x
err:= json.Unmarshal(jsnStr,& x)

但我需要捕获'任意字符串'。
我该怎么做?

解决方案

使用地图:

  var m map [string] X 
err:= json.Unmarshal([] byte(jsnStr),& m)

操场示例


I have this struct defined:

type X struct {
 A string `json:"a_known_string"`
 B string `json:"b_known_string"`
}

This sample JSON:

jsnStr := [read in from a file and printed out to confirm]

It is:

{
 "any string" : {
   "a_known_string" : "some value",
   "b_known_string" : "another value" 
 }
}

If it was just the struct, I could:

var x X
err := json.Unmarshal(jsnStr, &x)

But I need to capture that 'any string'. How do I do that please?

解决方案

Use a map:

var m map[string]X
err := json.Unmarshal([]byte(jsnStr), &m)

playground example

这篇关于如何使用无法在结构体:GOlang中捕获为`json`的动态关键字解组jSON的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆