【go】[ 已解决 谢谢]go json 数据解析 出错求教

package main

import (

"encoding/json"

"fmt"

)

type S struct {

Ss []SS

}

type SS struct {

Id int64 `json:"id,omitempty"`

Name string `json:"name"`

Index int8 `json:"index"`

Grids map[string]Num `json:"grids"`

}

type Num struct {

Id int64 `json:"id,omitempty"`

Left int8 `json:"left"`

Top int8 `json:"top"`

Zindex int8 `json:"zindex"`

Width int8 `json:"width"`

Height int8 `json:"height"`

Resource map[string]Re `json:"resource"`

}

type Re struct {

Id string `json:"id"`

Stype int8 `json:"stype"`

Url string `json:"url,omitempty"`

Fix bool `json:"fix"`

}

func main() {

d := []byte(`{

"5513d144004c81781fc06242": {

"id": "5513d144004c81781fc06242",

"name": "大会模式1",

"index": 1,

"grids": {

"5513d144004c81781fc06243": {

"id": "5513d144004c81781fc06243",

"left": 0,

"top": 0,

"zindex": 1328,

"width": 800,

"height": 0,

"resource": {

"id": "55110ecb695a0ce8209ad1d2",

"stype": 0,

"url": "",

"fix": false

}

},

"5513d144004c81781fc06244": {

"id": "5513d144004c81781fc06244",

"left": 0,

"top": 0,

"zindex": 1328,

"width": 800,

"height": 0,

"resource": {

"id": "55110f22e04aedcc20ffc71d",

"stype": 0,

"url": "",

"fix": false

}

}

}

},

"5513d14b004c81781fc06245": {

"id": "5513d14b004c81781fc06245",

"name": "大会模式2",

"index": 2,

"grids": {

"5513d14b004c81781fc06246": {

"id": "5513d14b004c81781fc06246",

"left": 0,

"top": 0,

"zindex": 1328,

"width": 800,

"height": 0,

"resource": {

"id": "55110ecb695a0ce8209ad1d2",

"stype": 0,

"url": "",

"fix": false

}

},

"5513d14b004c81781fc06247": {

"id": "5513d14b004c81781fc06247",

"left": 0,

"top": 0,

"zindex": 1328,

"width": 800,

"height": 0,

"resource": {

"id": "55110f22e04aedcc20ffc71d",

"stype": 0,

"url": "",

"fix": false

}

}

}

},

"5513d151004c81781fc06248": {

"id": "5513d151004c81781fc06248",

"name": "大会模式3",

"index": 3,

"grids": {}

},

"5513d2a6908a81e019539845": {

"id": "5513d2a6908a81e019539845",

"name": "大会模式16",

"index": 4,

"grids": {

"5513d834f8788e642cc16409": {

"id": "5513d834f8788e642cc16409",

"left": 138,

"top": 10,

"zindex": 20000,

"width": 800,

"height": 0,

"resource": {

"id": "55110f14695a0ce8209ad1d3",

"stype": 0,

"url": "",

"fix": false

}

},

"5513d834f8788e642cc1640a": {

"id": "5513d834f8788e642cc1640a",

"left": 0,

"top": 0,

"zindex": 1328,

"width": 800,

"height": 0,

"resource": {

"id": "55110f14695a0ce8209ad1d3",

"stype": 0,

"url": "",

"fix": false

}

}

}

},

"5513d3180cc83bbc17864613": {

"id": "5513d3180cc83bbc17864613",

"name": " 大会模式16",

"index": 5,

"grids": {

"5513d862f8788e642cc1640d": {

"id": "5513d862f8788e642cc1640d",

"left": 138,

"top": 10,

"zindex": 20000,

"width": 800,

"height": 0,

"resource": {

"id": "55110f14695a0ce8209ad1d3",

"stype": 0,

"url": "",

"fix": false

}

},

"5513d862f8788e642cc1640e": {

"id": "5513d862f8788e642cc1640e",

"left": 0,

"top": 0,

"zindex": 1328,

"width": 800,

"height": 0,

"resource": {

"id": "55110f14695a0ce8209ad1d3",

"stype": 0,

"url": "",

"fix": false

}

}

}

},

"5513d34cb59421b41f66accc": {

"id": "5513d34cb59421b41f66accc",

"name": "大会模式6",

"index": 6,

"grids": {

"5513d34cb59421b41f66accd": {

"id": "5513d34cb59421b41f66accd",

"left": 138,

"top": 10,

"zindex": 20000,

"width": 800,

"height": 0,

"resource": {

"id": "",

"stype": 0,

"url": "",

"fix": false

}

},

"5513d34cb59421b41f66acce": {

"id": "5513d34cb59421b41f66acce",

"left": 0,

"top": 0,

"zindex": 1328,

"width": 800,

"height": 0,

"resource": {

"id": "",

"stype": 0,

"url": "",

"fix": false

}

}

}

},

"5513dc4587b8fa481c7dfa32": {

"id": "5513dc4587b8fa481c7dfa32",

"name": "大会模式5",

"index": 7,

"grids": {

"5513dc4587b8fa481c7dfa33": {

"id": "5513dc4587b8fa481c7dfa33",

"left": 138,

"top": 100,

"zindex": 2000,

"width": 800,

"height": 10,

"resource": {

"id": "55110ecb695a0ce8209ad1d2",

"stype": 0,

"url": "",

"fix": false

}

}

}

}

}`)

var objs S

err := json.Unmarshal(d, &objs)

if err != nil {

fmt.Println("err", err)

}

fmt.Println(objs)

}

输出结果是:【go】[ 已解决 谢谢]go json 数据解析 出错求教

我想知道哪里出错了·~ 谢谢

回答

用下面这段JSON 就可以了,直接给你找到了,别问我哪里出的问题,以后这种问题麻烦自己找,别来这里面问,就是一体力活,这点事情都还要找别人来做,还是别玩IT了。

里面总共有两个错误,一个是对象数据最后一项后面加了一个 , 符号,另一个是少了一个 } 符号,具体在哪个位置我也忘记了。

{

"5513d144004c81781fc06242": {

"id": "5513d144004c81781fc06242",

"name": "大会模式1",

"index": 1,

"grids": {

"5513d144004c81781fc06243": {

"id": "5513d144004c81781fc06243",

"left": 0,

"top": 0,

"zindex": 1328,

"width": 800,

"height": 0,

"resource": {

"id": "55110ecb695a0ce8209ad1d2",

"stype": 0,

"url": "",

"fix": false

}

},

"5513d144004c81781fc06244": {

"id": "5513d144004c81781fc06244",

"left": 0,

"top": 0,

"zindex": 1328,

"width": 800,

"height": 0,

"resource": {

"id": "55110f22e04aedcc20ffc71d",

"stype": 0,

"url": "",

"fix": false

}

}

}

},

"5513d14b004c81781fc06245": {

"id": "5513d14b004c81781fc06245",

"name": "大会模式2",

"index": 2,

"grids": {

"5513d14b004c81781fc06246": {

"id": "5513d14b004c81781fc06246",

"left": 0,

"top": 0,

"zindex": 1328,

"width": 800,

"height": 0,

"resource": {

"id": "55110ecb695a0ce8209ad1d2",

"stype": 0,

"url": "",

"fix": false

}

},

"5513d14b004c81781fc06247": {

"id": "5513d14b004c81781fc06247",

"left": 0,

"top": 0,

"zindex": 1328,

"width": 800,

"height": 0,

"resource": {

"id": "55110f22e04aedcc20ffc71d",

"stype": 0,

"url": "",

"fix": false

}

}

}

},

"5513d151004c81781fc06248": {

"id": "5513d151004c81781fc06248",

"name": "大会模式3",

"index": 3,

"grids": {}

},

"5513d2a6908a81e019539845": {

"id": "5513d2a6908a81e019539845",

"name": "大会模式16",

"index": 4,

"grids": {

"5513d834f8788e642cc16409": {

"id": "5513d834f8788e642cc16409",

"left": 138,

"top": 10,

"zindex": 20000,

"width": 800,

"height": 0,

"resource": {

"id": "55110f14695a0ce8209ad1d3",

"stype": 0,

"url": "",

"fix": false

}

},

"5513d834f8788e642cc1640a": {

"id": "5513d834f8788e642cc1640a",

"left": 0,

"top": 0,

"zindex": 1328,

"width": 800,

"height": 0,

"resource": {

"id": "55110f14695a0ce8209ad1d3",

"stype": 0,

"url": "",

"fix": false

}

}

}

},

"5513d3180cc83bbc17864613": {

"id": "5513d3180cc83bbc17864613",

"name": " 大会模式16",

"index": 5,

"grids": {

"5513d862f8788e642cc1640d": {

"id": "5513d862f8788e642cc1640d",

"left": 138,

"top": 10,

"zindex": 20000,

"width": 800,

"height": 0,

"resource": {

"id": "55110f14695a0ce8209ad1d3",

"stype": 0,

"url": "",

"fix": false

}

},

"5513d862f8788e642cc1640e": {

"id": "5513d862f8788e642cc1640e",

"left": 0,

"top": 0,

"zindex": 1328,

"width": 800,

"height": 0,

"resource": {

"id": "55110f14695a0ce8209ad1d3",

"stype": 0,

"url": "",

"fix": false

}

}

}

},

"5513d34cb59421b41f66accc": {

"id": "5513d34cb59421b41f66accc",

"name": "大会模式6",

"index": 6,

"grids": {

"5513d34cb59421b41f66accd": {

"id": "5513d34cb59421b41f66accd",

"left": 138,

"top": 10,

"zindex": 20000,

"width": 800,

"height": 0,

"resource": {

"id": "",

"stype": 0,

"url": "",

"fix": false

}

},

"5513d34cb59421b41f66acce": {

"id": "5513d34cb59421b41f66acce",

"left": 0,

"top": 0,

"zindex": 1328,

"width": 800,

"height": 0,

"resource": {

"id": "",

"stype": 0,

"url": "",

"fix": false

}

}

}

},

"5513dc4587b8fa481c7dfa32": {

"id": "5513dc4587b8fa481c7dfa32",

"name": "大会模式5",

"index": 7,

"grids": {

"5513dc4587b8fa481c7dfa33": {

"id": "5513dc4587b8fa481c7dfa33",

"left": 138,

"top": 100,

"zindex": 2000,

"width": 800,

"height": 10,

"resource": {

"id": "55110ecb695a0ce8209ad1d2",

"stype": 0,

"url": "",

"fix": false

}

}

}

}

}

json数据有问题,你还是自己生成json数据吧

估计是有一个换行字符,如果要多行写一个string或者byte类型,使用 `` 把变量的值包起来。

这个程序有很多问题

  • 原始的数据格式有问题,基本上没法和你定义的 struct 对应起来
  • 有些该使用 []的地方,使用了 map[string]
  • 有些该使用 struct 的地方,使用了 map[string]
  • int8 太小了,会报错。
  • id 是字符串,不是 int64

花了点时间帮你处理了一下,你看一下吧。

附送一个在线格式 JSON 的工具:http://www.bejson.com/

go
package main

import (

"encoding/json"

"fmt"

)

type S struct {

Ss []SS `json:"ss"`

}

type SS struct {

Id string `json:"id,omitempty"`

Name string `json:"name"`

Index int64 `json:"index"`

// Grids []string //interface{}

Grids []Num `json:"grids,omitempty"`

}

type Num struct {

Id string `json:"id,omitempty"`

Left int64 `json:"left"`

Top int64 `json:"top"`

Zindex int64 `json:"zindex"`

Width int64 `json:"width"`

Height int64 `json:"height"`

// Resource []string interface{}

Resource Re `json:"resource,omitempty"`

}

type Re struct {

Id string `json:"id,omitempty"`

Stype int64 `json:"stype,omitempty"`

Url string `json:"url,omitempty"`

Fix bool `json:"fix,omitempty"`

}

func main() {

d := []byte(`{"ss":[

{

"id": "5513d144004c81781fc06242",

"name": "大会模式1",

"index": 1,

"grids": [

{

"id": "5513d144004c81781fc06243",

"left": 0,

"top": 0,

"zindex": 1328,

"width": 800,

"height": 0,

"resource": {

"id": "55110ecb695a0ce8209ad1d2",

"stype": 0,

"url": "",

"fix": false

}

},

{

"id": "5513d144004c81781fc06244",

"left": 0,

"top": 0,

"zindex": 1328,

"width": 800,

"height": 0,

"resource": {

"id": "55110f22e04aedcc20ffc71d",

"stype": 0,

"url": "",

"fix": false

}

}

]

},

{

"id": "5513d14b004c81781fc06245",

"name": "大会模式2",

"index": 2,

"grids": [

{

"id": "5513d14b004c81781fc06246",

"left": 0,

"top": 0,

"zindex": 1328,

"width": 800,

"height": 0,

"resource": {

"id": "55110ecb695a0ce8209ad1d2",

"stype": 0,

"url": "",

"fix": false

}

},

{

"id": "5513d14b004c81781fc06247",

"left": 0,

"top": 0,

"zindex": 1328,

"width": 800,

"height": 0,

"resource": {

"id": "55110f22e04aedcc20ffc71d",

"stype": 0,

"url": "",

"fix": false

}

}

]

},

{

"id": "5513d151004c81781fc06248",

"name": "大会模式3",

"index": 3,

"grids": []

},

{

"id": "5513d2a6908a81e019539845",

"name": "大会模式16",

"index": 4,

"grids": [

{

"id": "5513d834f8788e642cc16409",

"left": 138,

"top": 10,

"zindex": 20000,

"width": 800,

"height": 0,

"resource": {

"id": "55110f14695a0ce8209ad1d3",

"stype": 0,

"url": "",

"fix": false

}

},

{

"id": "5513d834f8788e642cc1640a",

"left": 0,

"top": 0,

"zindex": 1328,

"width": 800,

"height": 0,

"resource": {

"id": "55110f14695a0ce8209ad1d3",

"stype": 0,

"url": "",

"fix": false

}

}

]

},

{

"id": "5513d3180cc83bbc17864613",

"name": " 大会模式16",

"index": 5,

"grids": [

{

"id": "5513d862f8788e642cc1640d",

"left": 138,

"top": 10,

"zindex": 20000,

"width": 800,

"height": 0,

"resource": {

"id": "55110f14695a0ce8209ad1d3",

"stype": 0,

"url": "",

"fix": false

}

},

{

"id": "5513d862f8788e642cc1640e",

"left": 0,

"top": 0,

"zindex": 1328,

"width": 800,

"height": 0,

" resource": {

"id": "55110f14695a0ce8209ad1d3",

"stype": 0,

"url": "",

"fix": false

}

}

]

},

{

"id": "5513d34cb59421b41f66accc",

"name": "大会模式6",

"index": 6,

"grids": [

{

"id": "5513d34cb59421b41f66accd",

"left": 138,

"top": 10,

"zindex": 20000,

"width": 800,

"height": 0,

"resource": {

"id": "",

"stype": 0,

"url": "",

"fix": false

}

},

{

"id": "5513d34cb59421b41f66acce",

"left": 0,

"top": 0,

"zindex": 1328,

"width": 800,

"height": 0,

"resource": {

"id": "",

"stype": 0,

"url": "",

"fix": false

}

}

]

},

{

"id": "5513dc4587b8fa481c7dfa32",

"name": "大会模式5",

"index": 7,

"grids": [

{

"id": "5513dc4587b8fa481c7dfa33",

"left": 138,

"top": 100,

"zindex": 2000,

"width": 800,

"height": 10,

"resource": {

"id": "55110ecb695a0ce8209ad1d2",

"stype": 0,

"url": "",

"fix": false

}

}

]

}

]}`)

var objs S

err := json.Unmarshal(d, &objs)

if err != nil {

fmt.Println("err", err)

}

fmt.Println(objs)

}

呃,怎么现在都开始学GO了啊,这个一看就是JSON 有问题

以上是 【go】[ 已解决 谢谢]go json 数据解析 出错求教 的全部内容, 来源链接: utcz.com/a/103687.html

回到顶部