如何将SQL查询结果转换为指定JSON格式以对接API(ADF场景)
SQL转特定JSON格式(适配ADF API调用)
目标JSON结构示例(假设)
假设你需要的单条JSON结构如下:
{ "user_id": 1001, "user_info": { "username": "john_doe", "email": "john@example.com" }, "status": "active" }
修正后的SQL转换代码(以SQL Server/Azure SQL DB为例)
假设你的临时测试表#TempTest包含字段UserId, UserName, Email, Status,用FOR JSON PATH精准构造嵌套结构:
SELECT UserId AS 'user_id', UserName AS 'user_info.username', Email AS 'user_info.email', Status AS 'status' FROM #TempTest -- 若需每行输出单个JSON对象,加WITHOUT_ARRAY_WRAPPER;若需数组则去掉 FOR JSON PATH, WITHOUT_ARRAY_WRAPPER;
关键语法说明
- 用
AS '层级键名'实现JSON嵌套,比如'user_info.username'会生成嵌套的user_info对象 WITHOUT_ARRAY_WRAPPER取消默认的数组包裹,直接输出单条JSON(适配每行单独调用API的场景)- 如果是MySQL数据库,改用
JSON_OBJECT函数:
SELECT JSON_OBJECT( 'user_id', UserId, 'user_info', JSON_OBJECT( 'username', UserName, 'email', Email ), 'status', Status ) AS target_json FROM #TempTest;
ADF集成要点
- 在ADF中使用Lookup活动执行上述SQL,将
First row only设置为False,获取所有行的JSON结果 - 添加ForEach活动,遍历Lookup返回的结果集
- 在ForEach内部调用Web活动,将当前行的JSON字段作为API请求体发送
内容的提问来源于stack exchange,提问作者user19307825
相关产品推荐
相关产品推荐

