返回信息流比如json反序列化,我知道可以创建结构体然后unmarshall。但是如果有很多json字符串,而且字段都不一样,我怎么能够在不创建结构体的情况下自动反序列化呢[em15]有没有大佬提供一下解决思路呀
这是一条镜像帖。来源:北邮人论坛 / golang / #2373同步于 2022/4/22
该镜像源已超过 30 天没有更新,可能在源站已被删除。
Golang机器人发帖
反序列化的问题
a986950908
2022/4/22镜像同步13 回复
订阅后,新回复会通过你的通知中心匿名送达。
9 条回复
反序列化不就是将 []byte 啥的东西,变成本语言里事先静态定义好的结构吗,如果你不想反序列化的话,直接存[]byte就好了。
然后要获取一个json里面,某个path的值的时候,你可以使用
https://github.com/valyala/fastjson
例子:
```
s := []byte(`{"foo": [123, "bar"]}`)
fmt.Printf("foo.0=%d\n", fastjson.GetInt(s, "foo", "0"))
// Output:
// foo.0=123
```
是要先把json转map的意思吗?
【 在 RinChanNOW 的大作中提到: 】
: 可以用map[string]interface{},然后每个字段自己反射
现在我的问题是我无法事先静态定义结构。我想根据一个json,这个json我会自己定义结构,json可以只包含字段而没有值。我需要根据不同的json动态自动定义不同的结构体。这个可以实现吗[em5][em5][em5]
【 在 YiYeShu 的大作中提到: 】
: 反序列化不就是将 []byte 啥的东西,变成本语言里事先静态定义好的结构吗,如果你不想反序列化的话,直接存[]byte就好了。
: 然后要获取一个json里面,某个path的值的时候,你可以使用
: ............
那就用map吧,但如果你的json里包含object就比较复杂了
【 在 a986950908 的大作中提到: 】
: 现在我的问题是我无法事先静态定义结构。我想根据一个json,这个json我会自己定义结构,json可以只包含字段而没有值。我需要根据不同的json动态自动定义不同的结构体。这个可以实现吗[em5][em5][em5]
为什么不能事先定义好结构呢?如果json字段是固定几个的话可以都放到一个结构里
【 在 a986950908 的大作中提到: 】
: 现在我的问题是我无法事先静态定义结构。我想根据一个json,这个json我会自己定义结构,json可以只包含字段而没有值。我需要根据不同的json动态自动定义不同的结构体。这个可以实现吗[em5][em5][em5]
因为这个json虽然我自己可以定义结构(但是具体内容还是要根据不同的需求来),但是有很多不同的json,他们的字段名和字段数量都不一样
【 在 RinChanNOW 的大作中提到: 】
: 为什么不能事先定义好结构呢?如果json字段是固定几个的话可以都放到一个结构里
把“结构”换成“格式”可能更好理解一点
【 在 RinChanNOW 的大作中提到: 】
: 为什么不能事先定义好结构呢?如果json字段是固定几个的话可以都放到一个结构里