Azure表存储JSON返回每个条目一个数组而不是单个数组

时间:2019-06-14 18:53:39

标签: json azure azure-table-storage

我需要解析Azure Table Storage的JSON输出。我能够检索数据,但是重新调整的JSON似乎为每个数据条目提供了一个数组,而不是预期的单个数组。注意:真正的数组应该带有[],因此我不确定如何输出/显示此数据,因为我似乎无法达到嵌套的值。

我对表进行调用以获取结果如下:

var options = { payloadFormat: "application/json;odata=nometadata" };
tableService.queryEntities('myTable', tableQuery, null, options, function(error, result, response) {
        if(!error) {
        console.log(response.body.value);
    }

例如我希望每个https://blogs.msdn.microsoft.com/windowsazurestorage/2013/12/05/windows-azure-tables-introducing-json/

"value":[
   {
      "PartitionKey":"Jonathan",
      "RowKey":"Foster",
      "Timestamp":"2013-12-03T06:45:00.7254269Z",
      "Address":"1234 SomeStreet St, Bellevue, WA 75001",
      "Email":"Jonathan@fourthcoffee.com",
      "PhoneNumber":"425-555-0101",
      "CustomerSince":"2005-01-05T00:00:00Z",
      "Rating":3
   },
   {
      "PartitionKey":"Lisa",
      "RowKey":"Miller",
      "Timestamp":"2013-12-03T06:45:00.8834427Z",
      "Address":"4567 NiceStreet St, Seattle, WA 54332",
      "Email":"Lisa@northwindtraders.com",
      "PhoneNumber":"425-555-0101",
      "CustomerSince":"2003-01-05T00:00:00Z",
      "Rating":2
   },
   {
      "PartitionKey":"Walter",
      "RowKey":"Harp",
      "Timestamp":"2013-12-03T06:45:00.5384082Z",
      "Address":"1345 Fictitious St, St Buffalo, NY 98052",
      "Email":"Walter@contoso.com",
      "PhoneNumber":"425-555-0101",
      "CustomerSince":"2010-01-05T00:00:00Z",
      "Rating":4
   }
]
}

但是我得到了:

{value: Array(8)}
value: Array(8)
0: {PartitionKey: "Client1", RowKey: "1", Timestamp: "2019-06-05T14:07:08.5541163Z", Location: "eastus", OSType: "WindowsServer", …}
1: {PartitionKey: "Client1", RowKey: "2", Timestamp: "2019-06-04T21:23:42.1804373Z", PowerState: "VM deallocated", OSType: "WindowsServer", …}
2: {PartitionKey: "Client1", RowKey: "3", Timestamp: "2019-06-04T21:23:42.2394792Z", PowerState: "VM deallocated", OSType: "SQL2016SP1-WS2016", …}
3: {PartitionKey: "Client1", RowKey: "4", Timestamp: "2019-06-04T21:23:42.2104586Z", PowerState: "VM deallocated", OSType: "WindowsServer", …}
4: {PartitionKey: "Client1", RowKey: "5", Timestamp: "2019-06-04T21:23:42.2674991Z", PowerState: "VM running", OSType: "WindowsServer", …}
5: {PartitionKey: "Client1", RowKey: "6", Timestamp: "2019-06-04T21:23:42.3045253Z", PowerState: "VM deallocated", OSType: "WindowsServer", …}
6: {PartitionKey: "Client1", RowKey: "7", Timestamp: "2019-06-04T21:23:42.3325452Z", PowerState: "VM deallocated", OSType: "WindowsServer", …}
7: {PartitionKey: "Client1", RowKey: "8", Timestamp: "2019-06-04T21:23:42.3665693Z", PowerState: "VM deallocated", OSType: "SQL2017-WS2016", …}
length: 8
__proto__: Array(0)
__proto__: Object

1 个答案:

答案 0 :(得分:3)

您要的是原始的json字符串,但是该库调用为您提供了已解析的json对象。 如果需要字符串,只需在对象上调用JSON.stringify()即可:

var str = JSON.stringify(response.body.value);

TableService.queryEntities的源位于https://github.com/Azure/azure-storage-node/blob/1e315487b8801b8357b8974c7d925313cb143483/lib/services/table/tableservice.js#L811