我正在努力将数据存储在azure表中,同时我发现了对Azure表here的JSON支持。所以为了改变计划现在我有一个JSON格式的数据,我需要它存储在azure表上。我发现很少的代码片段,但都是针对c#。你能指导我吗?
先谢谢
答案 0 :(得分:1)
Azure表存储是一个Key/Value
对存储,而不是document
存储(一个很好的例子就是DocumentDB)。本质上,表包含实体(通常将它们视为行),每个实体包含一些属性(通常将它们视为列)。每个属性由3个部分组成:属性名称(将是键/值对中的键),属性值(键/值对中的值)和属性数据类型。
要回答您的问题,是的,您可以将一个JSON文档存储在Azure表中,但它作为属性存在,因此您需要为JSON文档分配一个键。此外,每个属性的大小不能超过64KB,因此您需要考虑这一点。
如果您的要求是存储JSON文档,我建议您查看DocumentDB。它更适合存储JSON数据并执行Azure表无法执行的更多操作。
关于您对Azure表的JSON支持的评论,它讨论了从Azure表发送/检索数据的格式。在早些时候,数据是使用ATOM PUB XML格式传输的,这使得请求有效载荷/响应体非常庞大。使用JSON格式,大小会大大减少。但无论您采用哪种方式,Azure Tables都会以键/值对格式存储数据。
答案 1 :(得分:1)
例如,您可以使用Java代码而不是C#代码,如下所示。
C#代码:
CloudTableClient tableClient = new CloudTableClient(baseUri, cred)
{
// Values supported can be AtomPub, Json, JsonFullMetadata or JsonNoMetadata
PayloadFormat = TablePayloadFormat.JsonNoMetadata
};
Java代码:
CloudTableClient tableClient = new CloudTableClient(baseUri, cred)
tableClient.getDefaultRequestOptions().setTablePayloadFormat(TablePayloadFormat.JsonNoMetadata);