- r - 以节省内存的方式增长 data.frame
- ruby-on-rails - ruby/ruby on rails 内存泄漏检测
- android - 无法解析导入android.support.v7.app
- UNIX 域套接字与共享内存(映射文件)
我想知道是否可以流式传输 JSON 并包含流本身之外的其他(同级) key ?我想包含一些关于生成文件的额外数据。类似于以下内容:
{
"info": {
"department": "a",
"id": "1",
},
"members": [
{ "name": "a", "age": "1" },
{ "name": "b", "age": "2" },
{ "name": "c", "age": "3" },
...stream
]
}
目前,我将 JSON 流式传输到平面文件,如下所示:
package main
import (
"encoding/json"
"os"
)
type Member struct {
Name string `json:"name"`
Age int `json:"age"`
}
func main() {
enc := json.NewEncoder(os.Stdout)
letters := []string{"a", "b", "c", "d", "e", "f"}
for i, letter := range letters {
key := Member{letter, i}
var err = enc.Encode(&key)
if err != nil {
// handle err
}
}
}
但如上所述,我想添加另一个键(例如“info”)并将流包含在键(例如“members”)中
我可以想到一个解决问题的方法,将它们作为单独的文件存储在一个目录中,例如
directory
├─ members.json
└─ info.json
但是可以添加其他(同级) key 吗?还是我只能使用平面文件?
最佳答案
类似的事情是可能的,但不是特别简单。我在我尚未合并的 PR 中的一个开源项目中做了类似的事情。但是你可以看我的例子here .
我公开的接口(interface)是接受一个 io.ReadCloser
并返回一个(可能被操纵的)io.ReadCloser
。在内部,它使用 json.Decoder
来解析 JSON,可能会向流中添加新数据。我不确定 json.Encoder
如何适应这个(如您的问题中所问)。
为您制作一个完整的工作示例对于 SO 答案来说是一项相当艰巨的任务,但我希望我提供的链接可以为您指明正确的方向。
在这种情况下,建议使用良好的单元测试和 TDD 方法!
关于go - 使用 NewEncoder 的嵌套 JSON 流,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50212303/
我想知道是否可以流式传输 JSON 并包含流本身之外的其他(同级) key ?我想包含一些关于生成文件的额外数据。类似于以下内容: { "info": { "departmen
我完全是个菜鸟,我想了解我在这里缺少什么。我期望使用 dec.Decode 循环遍历 json 值并以响应映射结束。我得到的是整个 json 字符串作为 map 第一个元素的键。我错过了什么? 示例响
我正在尝试通过在 Go 中使用 gorilla mux 库构建不同的基本 REST API 来学习后端开发(遵循 tutorial) 这是我到目前为止构建的代码: package main impor
我是一名优秀的程序员,十分优秀!