gpt4 book ai didi

node.js - 使用 Node 转换来自 Azure 表存储的响应

转载 作者:太空宇宙 更新时间:2023-11-04 02:19:00 24 4
gpt4 key购买 nike

我正在使用 Node 创建一个 REST API,该 API 从 Azure 表存储中读取。

输出类似于以下内容:

[  
{
"PartitionKey":{
"$":"Edm.String",
"_":"sdsdsdsd"
},
"RowKey":{
"$":"Edm.String",
"_":"sdsdsdsdsd"
},
"Timestamp":{
"$":"Edm.DateTime",
"_":"2015-08-20T01:56:37.499Z"
},
"Destination":{
"_":"sdsdsdsdsd"
},
"QueryParameters":{
"_":"sdsddsadsadsd"
},
"Referrer":{
"_":"sddsadsadss"
},
"RequestTime":{
"$":"Edm.DateTime",
"_":"sdsddsdsd"
},
"SiteUrl":{
"_":"sdsdsdsdd"
},
".metadata":{
"etag":"W/"datetime'2015-08-20T01:56:37.4999599Z'""
}
}
]

我正在使用 lodash,因为我想转换响应,使其具有以下内容:

  • 所有属性均为小写。例如。 PartitionKey 成为分区键
  • 删除所有具有键“$”的属性
  • 如果它们只是对象中的单个属性且其键为“_”,则将该值分配给父级并删除对该对象的需要。

有人可以帮忙吗?

最佳答案

考虑到您将 json 对象分配给 raw 对象,这是在 lodash 上执行此操作的一种方法。

在处理值之前首先规范化键:

const _ = require('lodash')

const lowKey = _.mapKeys(raw, (v,k) => k.toLowerCase())[0]
const norm = _.mapValues(lowKey, (v)=> {
delete v.$
if(Object.keys(v).length ===1 && v._) return v._;
else return v;
});
console.log(norm)

关于node.js - 使用 Node 转换来自 Azure 表存储的响应,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34334433/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com