SQL查询JSON格式的数据

SELECT
            t0.startDate,
            t2.employeeNo,
            t0.tab1,
            t0.tab2,
            t0.displayName,
            CONCAT(t2.lastName,t2.firstName ) AS employeeName,
            belongDeptNum
            FROM
            (SELECT
                formdata.contentJson->'$.billInfoList' AS tab1,
                formdata.contentJson->'$.datagrid2List' AS tab2,
                JSON_UNQUOTE(json_extract(json_extract(formdata.contentJson,'$.formInfo'),'$.startDate')) AS startDate,
                JSON_UNQUOTE(json_extract(formdata.contentJson,'$.costAttributiondefault')) AS displayName,
                JSON_UNQUOTE(json_extract(json_extract(formdata.contentJson,'$.sectioncols4'),'$.belongDeptNum')) AS belongDeptNum, 
                JSON_UNQUOTE(json_extract(json_extract(formdata.contentJson,'$.sectioncols15'),'$.applicationName')) AS applicationName
            FROM
                FormData formdata
            WHERE
                JSON_UNQUOTE(json_extract(json_extract(formdata.contentJson,'$.formInfo'),'$.folio')) = #{folio, jdbcType=VARCHAR}
            AND is_del = 0) AS t0
            LEFT JOIN com_paasit_pai_core_employeeObj t2
            ON t2.id = t0.applicationName

其中这formdata表中的contentJson字段是一个json格式的表格 

上面的tab1是行程和出差补助这两大列的数据  tab2是票据的数据  返回的 这两个格式是json格式的数组字符串 ,然后json格式字符串转对象就很简单啦

//将表格json数据转成集合
        JSONArray jsonarray1 = JSONArray.fromObject(queryObj.getTab1());
        List<FormF05RespS01> tab1 = (List<FormF05RespS01>)JSONArray.toCollection(jsonarray1, FormF05RespS01.class);

 

  • 0
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值