注:改帖子需要先了解jsonsql的基本语法:jsonsql
随着现在各种系统的越发成熟,大家其实都有自己的系统和数据提供接口。所以在对接使用wyn的时候,很多人都会直接接入API。而API的接入,就意味着对json结构的解析。众所周知,json结构体本身会因为业务场景的复杂和json-body的复杂,所以即使API接入后,不知道怎么转化成wyn使用的二维表。
那么今天就给大家分享一下除了json-path之外,json-sql怎么获取你的数据。
嵌套层级取父级key和子级value
首先看到这个名字其实就是很明显了,我们有时候会把一些信息放在json的key里面,用代码或许我们可以 Object可以取,但是这里很多人就头大了,那么就引入我们的jsonsql了。先看一下今天的示例数据:
- {
- "companyA": [
- {
- "createTime": "2023-12-31",
- "productInfo": "companyAInfo1",
- "value": 50
- },
- {
- "createTime": "2023-12-16",
- "productInfo": "companyAInfo2",
- "value": 23
- },
- {
- "createTime": "2023-11-21",
- "productInfo": "companyAInfo3",
- "value": 46
- }
- ],
- "companyB": [
- {
- "createTime": "2024-1-12",
- "productInfo": "companyBInfo1",
- "value": 232
- },
- {
- "createTime": "2023-1-21",
- "productInfo": "companyBInfo2",
- "value": 43
- }
- ],
- "companyC": [
- {
- "createTime": "2023-12-31",
- "productInfo": "companyCInfo1",
- "value": 88
- }
- ]
- }
复制代码 我们有公司A,公司B等,然后每个body下面有自己的信息,我们不仅希望获取公司信息,还需要获取对应的公司名称,那么就需要一个关键点,json-sql的[key]就可以拿到json的key值,具体sql如下:
- select
- outerJson.[key] as companyName,
- innerJson.[productInfo] as productInfo,
- innerJson.[createTime] as createTime
- innerJson.[value] as EPI
- from UnwindJson(@source) outerJson
- cross apply UnwindJson(outerJson.Value) innerJson with (
- [createTime] varchar,
- [productInfo] varchar,
- [value] Float
- )
复制代码
其中第一次查询的就是我们的最外层,我们取名 outerJson,我们需要的是外层的key.所以就是 outerJson.[key],然后在连接内部的数据,把每个字段列出来即可。
最终我们得到的结果即使如下:
下面是这个Demo。赶紧尝试一下吧:
嵌套层级取父级key和子级value.zip
(3.14 KB, 下载次数: 4)
|
|