Node.js azure存储表检索具有正确数据类型的行。所有值都以字符串形式返回,而不是以正确的类型返回
将Node.js与Azure存储表一起使用 我创建了一个新表,其中有两个字段/键(CreatedOn和NextRenewalDate)作为Int64值(从纪元开始的时间)。在我将值保存到表中之前,entgen会根据需要正确地将值标识为Int64 我知道Azure文档说它将int64存储为字符串。这样已经很久了 在抓取之后和使用之前,我一直在解析我知道的应用程序代码中的属性值int64Node.js azure存储表检索具有正确数据类型的行。所有值都以字符串形式返回,而不是以正确的类型返回,node.js,azure-storage,Node.js,Azure Storage,将Node.js与Azure存储表一起使用 我创建了一个新表,其中有两个字段/键(CreatedOn和NextRenewalDate)作为Int64值(从纪元开始的时间)。在我将值保存到表中之前,entgen会根据需要正确地将值标识为Int64 我知道Azure文档说它将int64存储为字符串。这样已经很久了 在抓取之后和使用之前,我一直在解析我知道的应用程序代码中的属性值int64 我想知道情况是否仍然如此?当我从Azure存储表中读取值时,是否有任何内置方法可以获得正确的数据类型?表服务数据
我想知道情况是否仍然如此?当我从Azure存储表中读取值时,是否有任何内置方法可以获得正确的数据类型?表服务数据模型仅支持这8种类型。有关更多详细信息,请参阅
- 二进制
- 布尔型
- 日期时间
- 双人
- Edm.Guid
- Edm.Int32
- Edm.Int64
- 电火花线
string
。有关更多详细信息,请参阅和
我无法找到一种内置的方法来将Azure存储表实体读回/转换回json 所以我写了一个快速方法,只要您在有效负载中请求元数据,这个方法就可以工作 const options={payloadFormat:“application/json;odata=fullmetadata”} 以下是可能帮助某人的快速功能:
function convertArrayOfEntitiesToJson(arrEntities){
let arrRecords = [];
for(let x=0; x < arrEntities.length; x++){
const entity = arrEntities[x];
let allKeys = Object.keys( entity )
let record = {};
allKeys.forEach(function(key){
if(entity[key]['$'] === "Edm.Int64" )
record[key] = parseInt( entity[key]["_"] );
else if(entity[key]['$'] === "Edm.DateTime" )
record[key] = new Date( entity[key]["_"] );
else if(entity[key]['$'] === "Edm.Boolean" )
record[key] = ( entity[key]["_"] == 'true' );
else if(entity[key]['$'] === "Edm.Boolean" )
record[key] = ( entity[key]["_"] == 'true' );
else // fall back to string
record[key] = entity[key]["_"];
});
arrRecords.push(record);
}
return arrRecords;
}
函数convertArrayOfentiestoJSON(欠款){
设arrRecords=[];
for(设x=0;x
我故意遗漏了几个数据类型。我不需要其他的类型。您可以根据需要添加其他数据类型。谢谢Jim。我看到了这个文档,我希望azure能够提供一些东西来将实体转换回json(比如他们允许使用entity generator将json转换成实体),但是我还没有找到类似的东西。最后,我根据自己的需要编写了一个快速函数,只要我们在读取表的过程中获得元数据和实体,它就可以工作。我会把它写下来作为我自己问题的答案。