Unmarshal a dynamic json

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

Unmarshal a dynamic json

问题

我有一堆需要解析的JSON文件。它们基本上具有相同的格式,但是长度不同。

一个例子:
https://pastebin.com/htt6k658

另一个例子:
https://pastebin.com/NR1Z08f4

我尝试了几种方法,比如构建如下的结构体:

type TagType struct {
	ID   int    `json:"id"`
	Name string `json:"name"`
	Slug string `json:"slug"`
	Tags []Tag  `json:"tags"`
}

type Tag struct {
	ID   int    `json:"users"`
	Name string `json:"name"`
	Slug string `json:"slug"`
}

还尝试了使用接口的方式:
json.Unmarshal([]byte(empJson), &result)

但是这些方法都没有起作用。

英文:

I have a bunch of JSON files that I need to Unmarshal. They have basically the same format, but different "length"

one example
https://pastebin.com/htt6k658

another example
https://pastebin.com/NR1Z08f4

I have tried several methods, like building structs like

type TagType struct {
	ID   int    `json:"id"`
	Name string `json:"name"`
	Slug string `json:"slug"`
	tags []Tag  `json:"tags"`
}

type Tag struct {
	ID   int    `json:"users"`
	Name string `json:"name"`
	Slug string `json:"slug"`
}

also with an interface, like
json.Unmarshal([]byte(empJson), &result)

but none of these methods worked.

答案1

得分: 1

JSON输入是一个数组,所以这应该可以工作:

var result []TagType
json.Unmarshal(data, &result)
英文:

The JSON input is an array, so this should work:

var result []TagType
json.Unmarshal(data,&result)

答案2

得分: 0

你可以使用在线工具,比如https://transform.tools/json-to-go,来生成Go语言的结构体:

type AutoGenerated []struct {
    ID   int    `json:"id"`
    Name string `json:"name"`
    Slug string `json:"slug"`
    Tags []struct {
        ID   int    `json:"id"`
        Name string `json:"name"`
        Slug string `json:"slug"`
    } `json:"tags"`
}

这段代码定义了一个Go语言的结构体,其中包含了IDNameSlugTags等字段。Tags字段是一个嵌套的结构体切片,包含了IDNameSlug等字段。这个结构体可以用于解析JSON数据。

英文:

You can use a online tool like https://transform.tools/json-to-go for generating the Go struct:

  type AutoGenerated []struct {
	ID   int    `json:"id"`
    Name string `json:"name"`
	Slug string `json:"slug"`
	Tags []struct {
    	ID   int    `json:"id"`
    	Name string `json:"name"`
    	Slug string `json:"slug"`
	    } `json:"tags"`
    }

huangapple
  • 本文由 发表于 2022年12月6日 00:23:35
  • 转载请务必保留本文链接:https://go.coder-hub.com/74691292.html
匿名

发表评论

匿名网友

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

确定