#azure-functions #azure-logic-apps
#azure-функции #azure-logic-apps
Вопрос:
Я создаю логическое приложение, в котором я использую функцию azure для возврата json обратно. Затем мне нужно составить JSON с возвращаемым значением плюс другие свойства, которые в конечном итоге я сохраню в CosmosDB. Однако я правильно получаю ответ от функции в виде массива, когда я составляю тот, который преобразуется в строку после композиции. Из-за этого он хранится в виде строки в БД, а не в документе. Ценю вашу поддержку.
Текущий вывод { «id»: «D», «studydate»: «DD», «studydescription»: «DD», «studyname»: «D», «/csdm/table1.csv»: «[{«No»:»1″, «Name»:»Ananda»,»Date»:»Krishna»,»Descriptionr»:»1111r»},{«No»:»2″,»Name»:»Test2″,»Date»:»Test2″,»Descriptionr»:»2222r»},{«No»: «3»,»Name»:»Test3″,»Date»:»Test3″,»Description r»:»3333″}]» }
Ожидаемый результат
«id»: «D», «studydate»: «DD», «studydescription»: «DD», «studyname»: «D», «/csdm/table1.csv»:[ { «No»: «1», «Name»: «Ananda», «Дата»: «Кришна», «Описание r»: «1111 r» }, { «Нет»: «2», «Имя»: «Тест2», «Дата»: «Тест2», «Описание r»: «2222 r» }
Ниже приведен код функции Azure:
module.exports = async function (context, req) {
context.log('JavaScript HTTP trigger function processed a request.');
const filecontents = req.body
const filename= req.query.filename
context.log(req.body)
const splitfilecontents = filecontents.split("n")
const splitheader = splitfilecontents[0].split(",")
const totalrows = splitfilecontents.length
context.log(splitfilecontents)
let ret=[]
let data=[]
header=[]
itemjson= []
finaljson={}
context.log("header" splitfilecontents[0])
context.log("header Length" splitfilecontents[0].length)
const headerrow= splitfilecontents[0].split(",")
context.log("Headers Total" headerrow)
for (let i=1, len=splitfilecontents.length; i<len;i )
{
data = splitfilecontents[i].split(",")
context.log("Row Data" data)
item = {}
for (let j=0,len2=headerrow.length;j<len2;j )
{
item[headerrow[j]] = data[j]
context.log("row" i "column" j "Data" item[headerrow[j]])
}
itemjson.push(item)
context.log("item" i "Data" item[headerrow[0]])
}
finaljson=JSON.stringify(itemjson)
finaljson2=JSON.stringify(finaljson)
finaljson3=JSON.stringify(finaljson2)
context.log(finaljson)
context.log("final data" finaljson.length)
context.res = {
// status: 200, /* Defaults to 200 */
body: itemjson
};
}
Ответ №1:
Это решается путем добавления приведенного ниже кода в мой ответ функции Azure.
context.res = {
// status: 200, /* Defaults to 200 */
body: finaljson,
headers: {
'Content-Type': 'application/json'
}```