首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何解析不变的json var名称

如何解析不变的json var名称
EN

Stack Overflow用户
提问于 2017-09-05 19:23:40
回答 1查看 28关注 0票数 0

有人能帮我解析一下下面的JSON吗?标签不包含""/"“括号,但是左边的变量名是不确定的:

示例1:

代码语言:javascript
复制
{
    "value": 569000000,
    "tags": {
        "importerId": "catchacar",
        "jvmProcess": "12367A"
    }
}

示例2:

代码语言:javascript
复制
{
    "value": 519,
    "tags": {
        "cluster": "cluster-29042",
        "valueName": "open-files"
    },
    "time": "2017-09-05T11:03:57.877Z"
}

我如何定义一个结构来捕获任意的左方值?我发现了以下内容:

代码语言:javascript
复制
type JSONTag struct {
    ValueName string `json:"valueName"`   <--- what to write here ????
    Value     string `json:"value"`
}

type JSONMessage struct {
    Value float64   `json:"value"`
    Time  string    `json:"time"`
    Tags  []JSONTag `json:"tags"`
}

group := JSONMessage{
    Value: 123,
    Time:  "2017-09-01T14:26:33.773Z",
    Tags:  []JSONTag{JSONTag{"valName1", "val1"}},
}

但这会产生并需要括号。示例:

代码语言:javascript
复制
{
  "value": 123,
  "time": "2017-09-01T14:26:33.773Z",
  "tags": [
    {
      "valueName": "valName1",
      "value": "val1"
    }
  ]
}   

非常感谢!

EN

回答 1

Stack Overflow用户

发布于 2017-09-05 19:43:42

解决方案:

代码语言:javascript
复制
type JSONTag struct {
    ValueName string `json:"valueName"`
    Value     string `json:"value"`
}

type JSONMessage struct {
    Value float64           `json:"value"`
    Time  string            `json:"time"`
    Tags  map[string]string `json:"tags"`
}
... 

// usage: 
group := JSONMessage{
    Value: 123,
    Time:  "2017-09-01T14:26:33.773Z",
    Tags:  map[string]string{"foo": "aaa", "bar": "aaa"},
}

结果:

代码语言:javascript
复制
{
  "value": 123,
  "time": "2017-09-01T14:26:33.773Z",
  "tags": {
    "bar": "aaa",
    "foo": "aaa"
  }
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/46053767

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档