请问如何解析一个 Map 和 List 多级嵌套形式的 JSON(十万行左右)?

2020-03-02 10:26:31 +08:00
 Kamitora

基本功能:记录每一个层级 key 所对应的 value。

原始需求:根据 JSON,还原成一个个对应的数据库...

这种情况是写递归还是说有现成的轮子可以使用?

谢谢 🙏

2494 次点击
所在节点    问与答
9 条回复
qyvlik
2020-03-02 10:31:38 +08:00
你使用的编程语言和环境?
Torpedo
2020-03-02 10:34:56 +08:00
如果预先知道 json 的结构,可以手写个解析器优化下
Kamitora
2020-03-02 10:36:12 +08:00
@qyvlik 还没想好用什么😓,只要能解决这个问题就行...
tiiis
2020-03-02 10:36:42 +08:00
qyvlik
2020-03-02 10:51:47 +08:00
@Kamitora 如果是我的话,用 java,先用 fastjson 解析成 JSON 对象,然后直接按 JSON 对象的结构进行遍历,然后按要求写到 RDS 数据库。
另外的做法就是,将 这个 JSON 字符串解析好后,分批插入 mongo ( mongo 单个 document 有大小限制,可修改),mongo 有 js、java、go 等语言的开发库。
Mutoo
2020-03-02 10:56:04 +08:00
stream-json 专门处理大 json,流式处理的过程中正好可以获得各级的 key 和 value
gwy15
2020-03-02 11:14:19 +08:00
十万行也不大啊,正常做就行,不用特别优化
lavanil
2020-03-02 13:04:41 +08:00
val path = "examples/src/main/resources/people.json"
val peopleDF = spark.read.json(path)
love
2020-03-02 13:40:25 +08:00
10w 不多啊,内存不够加内存。

当然能改原始输出格式就最好了,这类都要改成单行一个 JSON 文档的风格方便流式处理。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/649026

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX