json无名数组居然不能用golang解析?

cgdxxx · 2021-05-15 17:04:49 · 3219 次点击 · 大约8小时之前 开始浏览    置顶
这是一个创建于 2021-05-15 17:04:49 的主题,其中的信息可能已经有所发展或是发生改变。

有这样一个json数据

{ "line": [ [93000, 3446.407, 3583541], [93100, 3444.017, 8592772], [105900, 3449.806, 698530] ] }

我是这样解析的

type TagItem struct {

V [3]float32

}

type TagList struct {

Data []TagItem json:"line"

}

var tagList TagList

json.Unmarshal([]byte(jstr), &tagList)

fmt.Println(tagList.Data[0].V)

打印出来全是0,取不到真正的数组数据,是不是golang不支持这种格式的json数组啊?


有疑问加站长微信联系(非本文作者)

入群交流(和以上内容无关):加入Go大咖交流群,或添加微信:liuxiaoyan-s 备注:入群;或加QQ群:692541889

3219 次点击  
加入收藏 微博
3 回复  |  直到 2021-05-17 11:17:43
focusonline
focusonline · #1 · 4年之前

我觉得你对go的类型定义有误解

type TagList struct {

Line [][]float32 `json:"line"`

}

这样是可以的 或者

type TagItem = []float32
type TagList struct {

Line []TagItem `json:"line"`

}

这样也是可以的.

buscoop
buscoop · #2 · 4年之前

明显是自己定义错了

cgdxxx
cgdxxx · #3 · 4年之前
focusonlinefocusonline #1 回复

我觉得你对go的类型定义有误解 ```go type TagList struct { Line [][]float32 `json:"line"` } ``` 这样是可以的 或者 ```go type TagItem = []float32 type TagList struct { Line []TagItem `json:"line"` } ``` 这样也是可以的.

谢谢兄台路见不平拔刀相助!两种方法我都实验了,都可以, 太牛了!!!神一样的代码,我要好好保存下来,万一以后看不到了怎么办,好焦虑

添加一条新回复 (您需要 登录 后才能回复 没有账号 ?)
  • 请尽量让自己的回复能够对别人有帮助
  • 支持 Markdown 格式, **粗体**、~~删除线~~、`单行代码`
  • 支持 @ 本站用户;支持表情(输入 : 提示),见 Emoji cheat sheet
  • 图片支持拖拽、截图粘贴等方式上传