解析 json,整理分散数据入库
创始人
2024-05-12 18:32:33
0

【问题】

在 json 文件中有以下内容:

现在需要将 json 中分散的数据整理入库。

“LIST”中包含多个子孙记录,主要目标是”GROUPNAME”、”SERVICES”。

“GROUPNAME”值、”SERVICES”中的键编号对应了数据库表 _groups 的 Groupname 和 ID。

“SERVICES”每个值对应数据库表 Services 中的一条记录

【回答】

这里的 JSON 串由于包含多层且很多层都是动态的(如 LIST 和 SERVICES 下的节点数量和名称都不固定),这为解析带来了很大难度;而且其中属性名部分还包含空格(如 MOVISTAR SPAIN)和点号(如 Requires.Network)这也大大增加了解析难度,使用 JAVA 或 C# 太难写。SPL 提供了 JSON 解析功能,还可以将解析结果写入数据库:

A

B

C

1

=json(file(“D:/test/json example.json”).read())

2

=A1.SUCCESS.LIST

3

=create(Groupname,groupid)

4

=create(Serviceid,Servicename,Credit,Time,INFO,Network,Mobile,Provider,PIN,KBH,MEP,PRD,Type,Locks,Reference,groupid)

5

for A2.fno()

=A2.field(A5)

6

=B5.SERVICES

7

for B6.fno()

=B6.fname(B7)

8

=B6.field(B7)

9

=A3.record([B5.GROUPNAME,C7])

10

=A4.record(C8.array()|C7)

11

=connect(“test”)

12

=A11.update(A3,_groups,Groupname,ID:groupid;ID)

13

=A12.update(A4,Services,Serviceid,Servicename,Credit,_Time:Time,INFO,Network,Mobile,Provider,PIN,KBH,MEP,PRD,_Type:Type,_Locks:Locks,_Reference:Reference,groupid;Serviceid)

A1: 读取 json 文件成字符串,导入为序表。

A2:取 SUCCESS.LIST 记录

A3、A4:生成两个新的序表,用于提交。

根据 A2 字段数量循环,每个字段的值(子记录)可以在 B5 取到形如:![]

根据 B5.SERVICES 记录里的字段数量循环,每个字段的名字可以在 C7 获得,每个字段的值可在 C8 取到。B5.SERVICES 形如:

到此我们可以获得开篇所述“GROUPNAME”值、”SERVICES”中的键编号和“SERVICES”的值。向 A3、A4 新序表中循环添加记录:

入库结果

services 表

_group 表

相关内容

热门资讯

前端-session、jwt 目录:   (1)session (2&#x...
linux入门---制作进度条 了解缓冲区 我们首先来看看下面的操作: 我们首先创建了一个文件并在这个文件里面添加了...
关于测试,我发现了哪些新大陆 关于测试 平常也只是听说过一些关于测试的术语,但并没有使用过测试工具。偶然看到编程老师...
前缀和与对数器与二分法 1. 前缀和 假设有一个数组,我们想大量频繁的去访问L到R这个区间的和,...
nodejs:本地安装nvm实... 一、背景-使用不同版本node的原因 vue3+ts、nuxt3版本,node...
JAVA集合知识整理 Java集合知识整理 HashMap相关 HashMap的底层数据结构:jdk1.8之...
无刷直流电机介绍及单片机控制实... 无刷直流电机介绍及单片机控制实例前言基本概念优势与劣势使用寿命基本结构使用单片机控制实例电子调速器&...
fwdiary(2) dp2 1.传纸条  AcWing 275. 传纸条 - AcWing 走两条路,走一条最大的...
常用的DOS命令 常用的DOS命令 DOS(Disk Operating System,磁...
<C++> 类和对象(下) 1.const成员函数将const修饰的“成员函数”称之为const成员函数,cons...