【问题】
在 json 文件中有以下内容:
![](https://i-blog.csdnimg.cn/blog_migrate/ca32a9c8243ed97db72cb860cc15fc26.png)
现在需要将 json 中分散的数据整理入库。
“LIST”中包含多个子孙记录,主要目标是”GROUPNAME”、”SERVICES”。
“GROUPNAME”值、”SERVICES”中的键编号对应了数据库表 _groups 的 Groupname 和 ID。
![](https://i-blog.csdnimg.cn/blog_migrate/f61054a4b22997c2fbc76b23b4d88cd0.png)
“SERVICES”每个值对应数据库表 Services 中的一条记录
![](https://i-blog.csdnimg.cn/blog_migrate/1325909d6d7482b60df2136e276f3d7b.png)
【回答】
这里的 JSON 串由于包含多层且很多层都是动态的(如 LIST 和 SERVICES 下的节点数量和名称都不固定),这为解析带来了很大难度;而且其中属性名部分还包含空格(如 MOVISTAR SPAIN)和点号(如 Requires.Network)这也大大增加了解析难度,使用 JAVA 或 C# 太难写。SPL 提供了 JSON 解析功能,还可以将解析结果写入数据库: