相关疑难解决方法(0)

用未知字段解组JSON

我有以下JSON

{"a":1, "b":2, "?":1, "??":1}
Run Code Online (Sandbox Code Playgroud)

我知道它有"a"和"b"字段,但我不知道其他字段的名称.所以我想以下列类型解组它:

type Foo struct {
  // Known fields
  A int `json:"a"`
  B int `json:"b"`
  // Unknown fields
  X map[string]interface{} `json:???` // Rest of the fields should go here.
}
Run Code Online (Sandbox Code Playgroud)

我怎么做?

json go

41
推荐指数
8
解决办法
3万
查看次数

如何在Golang中解析/ deserlize动态JSON

场景:
考虑以下是JSON:

{
   "Bangalore_City": "35_Temperature",
   "NewYork_City": "31_Temperature",
   "Copenhagen_City": "29_Temperature"
}
Run Code Online (Sandbox Code Playgroud)

如果您注意到,数据的结构使得没有硬编码的密钥提及City/ Temperature它基本上只是值.

问题:我无法解析任何动态的JSON.

问题:有没有人能找到这种JSON解析的解决方案?我试过go-simplejson,gabs和默认encoding/json但没有运气.

注意: 上面的JSON仅用于示例.并且有很多应用程序正在使用当前的API,所以我不想改变数据的结构.我的意思是我不能改变如下:

[{
   "City_Name":"Bangalore",
   "Temperature": "35"
},...]
Run Code Online (Sandbox Code Playgroud)

然后我可以定义 struct

type TempData struct {
  City_Name string
  Temperature  string
}
Run Code Online (Sandbox Code Playgroud)

json go

29
推荐指数
3
解决办法
2万
查看次数

如何将未知字段名的 JSON 解组为结构体

是否可以用未知字段解组 JSON?该字段名称始终不同,但结构是相同的。JSON 是 POST 请求的结果。

我的代码:

package main

import "fmt"
import "encoding/json"

var body = []byte(`{
    "unknown_field": {
            "known_field_1": [[1,2,3,4,5],[10,20,30,40,50],[100,200,300,400,500]],
            "known_field_2": [[11,21,31,41,51]],
            "known_field_3": [[12,22,32,42,52],[14,44,34,44,54]]
        }
}`)

type MyStruct struct {
    MainData map[string]mData `json:"-"`
}

type mData struct {
    knownField1 [][5]int `json:"known_field_1"`
    knownField2 [][5]int `json:"known_field_2"`
    knownField3 [][5]int `json:"known_field_3"`
}

func NewMyStruct() MyStruct {
    ms := MyStruct{}
    ms.MainData = make(map[string]mData)
    return ms
}

func main() {
    myStruct := NewMyStruct()
    if err := json.Unmarshal(body, &myStruct); err != nil {
        panic(err)
    }

    fmt.Println(myStruct) // …
Run Code Online (Sandbox Code Playgroud)

json go

5
推荐指数
1
解决办法
8615
查看次数

将json字符串解组为具有struct本身的一个元素的结构

我是初学者并试图解组以下json字符串

[{
    "db": {
        "url": "mongodb://localhost",
        "port": "27000",
        "uname": "",
        "pass": "",
        "authdb": "",
        "replicas": [
            {
                "rs01": {
                    "url":"mongodb://localhost",
                    "port": "27001",
                    "uname": "",
                    "pass": "",
                    "authdb": ""
                }
            },
            {
                "rs02": {
                    "url":"mongodb://localhost",
                    "port": "27002",
                    "uname": "",
                    "pass": "",
                    "authdb": ""
                }
            }
        ]
    }
}]
Run Code Online (Sandbox Code Playgroud)

这是结构

type DBS struct {
    URL      string `json:url`
    Port     string `json:port`
    Uname    string `json:uname`
    Pass     string `json:pass`
    Authdb   string `json:authdb`
    Replicas []DBS   `json:replicas`
}
Run Code Online (Sandbox Code Playgroud)

这是功能

func loadConfigs() []DBS {
    var config []DBS
    raw, …
Run Code Online (Sandbox Code Playgroud)

json struct go

0
推荐指数
1
解决办法
439
查看次数

标签 统计

go ×4

json ×4

struct ×1