go - 如何使用 Golang 解析 ndjson 文件?
问题描述
我有一个ndjson
(换行符分隔的 JSON)文件,我需要解析它并获取一些逻辑操作的数据。有没有ndjson
使用golang解析文件的好方法。下面给出了一个示例 ndjson
{"a":"1","b":"2","c":[{"d":"100","e":"10"}]}
{"a":"2","b":"2","c":[{"d":"101","e":"11"}]}
{"a":"3","b":"2","c":[{"d":"102","e":"12"}]}
解决方案
encoding/json解码器根据值类型解析带有可选或必需空格的顺序 JSON 文档。因为换行符是空格,所以解码器处理ndjson
.
d := json.NewDecoder(strings.NewReader(stream))
for {
// Decode one JSON document.
var v interface{}
err := d.Decode(&v)
if err != nil {
// io.EOF is expected at end of stream.
if err != io.EOF {
log.Fatal(err)
}
break
}
// Do something with the value.
fmt.Println(v)
}
推荐阅读
- python - 装饰器可以修改包装函数的函数签名中的类型提示吗?
- c++ - 尝试使用 malloc() 分配一个内部包含一个集合的结构来堆内存
- css - 使用 CSS 对齐字段
- java - Spring Data 中的验证抛出 ConstraintViolationException
- android - Android - 签名证书与上传证书
- git - 如何将一个分支的所有文件合并到另一个分支,但一个文件除外
- php - 找到没有打开 XAMPP 的文件 htdocs
- javascript - 用空格分割字符串,但不是换行符中的空格,并保留换行符
- python - 获取 xpath 同级文本值 - Python Selenium
- typescript - 扩展和修改嵌套的打字稿接口