Azure 流分析中的 UDF 在 JSON 中输出别名
UDF in Azure Stream Analytics outputs alias in the JSON
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\"
}
一种可能的方法是从对象中提取不同的元素。
请参阅下面的示例:
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
要获取 JSON 对象的值,我们还可以使用 GetRecordPropertyValue 方法。其中 属性 名称作为字符串表达式。
这个UDF函数将returnJSON对象
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
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\"
}
一种可能的方法是从对象中提取不同的元素。 请参阅下面的示例:
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
要获取 JSON 对象的值,我们还可以使用 GetRecordPropertyValue 方法。其中 属性 名称作为字符串表达式。
这个UDF函数将returnJSON对象
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