Node.js azure存储表检索具有正确数据类型的行。所有值都以字符串形式返回,而不是以正确的类型返回

Node.js azure存储表检索具有正确数据类型的行。所有值都以字符串形式返回,而不是以正确的类型返回,node.js,azure-storage,Node.js,Azure Storage,将Node.js与Azure存储表一起使用 我创建了一个新表,其中有两个字段/键(CreatedOn和NextRenewalDate)作为Int64值(从纪元开始的时间)。在我将值保存到表中之前,entgen会根据需要正确地将值标识为Int64 我知道Azure文档说它将int64存储为字符串。这样已经很久了 在抓取之后和使用之前,我一直在解析我知道的应用程序代码中的属性值int64 我想知道情况是否仍然如此?当我从Azure存储表中读取值时,是否有任何内置方法可以获得正确的数据类型?表服务数据

将Node.js与Azure存储表一起使用

我创建了一个新表,其中有两个字段/键(CreatedOn和NextRenewalDate)作为Int64值(从纪元开始的时间)。在我将值保存到表中之前,entgen会根据需要正确地将值标识为Int64

我知道Azure文档说它将int64存储为字符串。这样已经很久了

在抓取之后和使用之前,我一直在解析我知道的应用程序代码中的属性值int64


我想知道情况是否仍然如此?当我从Azure存储表中读取值时,是否有任何内置方法可以获得正确的数据类型?

表服务数据模型仅支持这8种类型。有关更多详细信息,请参阅

  • 二进制
  • 布尔型
  • 日期时间
  • 双人
  • Edm.Guid
  • Edm.Int32
  • Edm.Int64
  • 电火花线
此外,当我们从Azure表检索实体时,该实体将以ODataJSON格式返回。根据OData协议azure表支持,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转换成实体),但是我还没有找到类似的东西。最后,我根据自己的需要编写了一个快速函数,只要我们在读取表的过程中获得元数据和实体,它就可以工作。我会把它写下来作为我自己问题的答案。