使用节点从 Azure Table 存储转换响应
Transform Response From Azure Table Storage With Node
我正在使用从 Azure Table 存储中读取的节点创建 REST API。
输出类似于以下内容:
[
{
"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 变成 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)
我正在使用从 Azure Table 存储中读取的节点创建 REST API。
输出类似于以下内容:
[
{
"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 变成 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)