斯里普在SAJ:
SELECT
udf.createJsonMessage(param1, param2)
INTO Output
FROM EventHubLocal eventHub
删除了其他不需要的东西。
UDF:
function CreateJsonMessageForOutput(param1, param2) {
var obj = new Object();
obj.Prop1 = param1;
obj.Prop2 = param2;
return JSON.stringify(obj);
}
此处不需要删除代码。
输出JSON包含函数别名:
{
"createjsonmessage": "{\"Prop1\":\"param1\",\"Prop2\":\"param2\"}"
}
我该怎么做以这种格式:
{
\"Prop1\":\"param1\",
\"Prop2\":\"param2\"
}
答案 0 :(得分:0)
一种可能的方法是从对象中提取不同的元素。 请参阅以下示例:
WITH step1 AS(
SELECT udf.createJsonMessage(param1, param2)
FROM EventHubLocal eventHub
)
SELECT createJsonMessage.Prop1, createJsonMessage.Prop2
INTO Output
FROM step1
这只需要对UDF函数进行一些小改动:
function CreateJsonMessageForOutput(param1, param2) {
var obj = new Object();
obj.Prop1 = param1;
obj.Prop2 = param2;
return obj;
}
谢谢, JS
答案 1 :(得分:0)
要获取JSON对象的值,我们还可以使用GetRecordPropertyValue方法。其中属性名称为字符串表达式。
此UDF函数将返回JSON对象
function CreateJsonMessageForOutput(param1, param2) {
var obj = new Object();
obj.Prop1 = param1;
obj.Prop2 = param2;
return obj;
}
查询
WITH step1 AS(SELECT udf.createJsonMessage(param1, param2)
FROM EventHubLocal eventHub)
SELECT GetRecordPropertyValue(createJsonMessage,'Prop1') as Prop1, GetRecordPropertyValue(createJsonMessage,'Prop2') as Prop2
INTO Output
FROM step1