逻辑应用程序 JSON 组合转换为字符串的 JSON 值
Logic App JSON composition converted JSON value as string
我正在创建一个逻辑应用程序,我在其中使用 azure 函数 return json 返回。然后,我需要将 JSON 与 return 值以及最终存储在 CosmosDB 中的其他属性组合起来。我从作为数组的函数中得到了正确的响应,但是当我编写 who 在组合后转换为字符串时。因此,它在数据库中存储为字符串而不是文档。感谢您的支持。
当前输出
{
“编号”:“D”,
“学习日期”:“DD”,
"studydescription": "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","名称":"测试 3","日期":"测试 3","Description\r":"3333"}]"
}
预期输出
"id": "D",
“学习日期”:“DD”,
"studydescription": "DD",
“研究名称”:“D”,
“/csdm/table1.csv”:[
{
“否”:“1”,
“名称”:“阿南达”,
“日期”:“克里希纳”,
“Description\r”:“1111\r”
},
{
“否”:“2”,
“名称”:“测试2”,
“日期”:“测试2”,
“Description\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 函数响应中添加以下代码来解决。
context.res = {
// status: 200, /* Defaults to 200 */
body: finaljson,
headers: {
'Content-Type': 'application/json'
}```
我正在创建一个逻辑应用程序,我在其中使用 azure 函数 return json 返回。然后,我需要将 JSON 与 return 值以及最终存储在 CosmosDB 中的其他属性组合起来。我从作为数组的函数中得到了正确的响应,但是当我编写 who 在组合后转换为字符串时。因此,它在数据库中存储为字符串而不是文档。感谢您的支持。
当前输出
{
“编号”:“D”,
“学习日期”:“DD”,
"studydescription": "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","名称":"测试 3","日期":"测试 3","Description\r":"3333"}]"
}
预期输出
"id": "D", “学习日期”:“DD”, "studydescription": "DD", “研究名称”:“D”, “/csdm/table1.csv”:[ { “否”:“1”, “名称”:“阿南达”, “日期”:“克里希纳”, “Description\r”:“1111\r” }, { “否”:“2”, “名称”:“测试2”, “日期”:“测试2”, “Description\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 函数响应中添加以下代码来解决。
context.res = {
// status: 200, /* Defaults to 200 */
body: finaljson,
headers: {
'Content-Type': 'application/json'
}```