【发布时间】:2020-11-06 06:58:22
【问题描述】:
我正在创建一个使用 azure 函数返回 json 的逻辑应用程序。然后我需要用返回值和其他属性组成 JSON,最终我将存储在 CosmosDB 中。我从函数作为数组正确地得到了响应,但是当我编写谁在组合后转换为字符串时。因此,它在 DB 中存储为 string 而不是 document 。感谢您的支持。
当前输出
{
“id”:“D”,
“学习日期”:“DD”,
“研究描述”:“DD”,
“研究名称”:“D”,
"/csdm/table1.csv": "[{"No":"1","Name":"Ananda","Date":"Krishna","Description\r":"1111\r"},{ "No":"2","Name":"Test2","Date":"Test2","Description\r":"2222\r"},{"No":"3","Name": "Test3","Date":"Test3","Description\r":"3333"}]"
}
预期输出
"id": "D", “学习日期”:“DD”, “研究描述”:“DD”, “研究名称”:“D”, “/csdm/table1.csv”:[ { “否”:“1”, “名”:“阿难”, “日期”:“克里希纳”, “说明\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
};
}
【问题讨论】:
标签: azure-functions azure-logic-apps