前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >树状JSON转成父子表展开,不到二十行代码搞定它!

树状JSON转成父子表展开,不到二十行代码搞定它!

作者头像
加菲猫的VFP
发布2021-08-16 15:05:30
5130
发布2021-08-16 15:05:30
举报
文章被收录于专栏:加菲猫的VFP

有如下树状代码,要转换成VFP的表,有没有什么好办法呢?

其实框架里面宝藏很多,用起来也非常简单。

代码语言:javascript
复制
    [{
        "ddh": "001",
        "rows": [
            {
                "code": "x001"
            },
            {
                "code": "x002"
            }
        ]
    },
    {
        "ddh": "002",
        "rows": [
            {
                "code": "x003"
            },
            {
                "code": "x004"
            }
        ]
    }
]

不到二十行解决问题

代码语言:javascript
复制
cResult=上面的JSON
Create Cursor  tb2 (ddh c(10),Code c(10))  &&创建子表结构

oReader=Newobject("QiyuJsonReader","QiyuJsonReader.prg")
oReader.cursorstruct="ddh c(10),rows c(240)"
oReader.Alias="tb1"  &&临时表名
*参数说明:JSON串,缓冲表模式(0 自动  1 新增  2 编辑 3 删除),键值是数组是否转换成JSON字符串
oReader.parsecursor(cResult,0,.T.) 

Scan
  cDdh=ddh
  oReader=Newobject("QiyuJsonReader","QiyuJsonReader.prg")
  oReader.cursorstruct="code c(10)"
  oReader.Alias="tb_tmp"  &&临时表名
  *参数说明:JSON串,缓冲表模式(0 自动  1 新增  2 编辑 3 删除),键值是数组是否转换成JSON字符串
  If oReader.parsecursor(Rows,0,.T.) <0
      Exit
  Endif
  Insert Into tb2(ddh,Code) Select cDdh,Code From tb_tmp With (Buffering = .T.)
Endscan
本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2021-02-20,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 加菲猫的VFP 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档