【问题标题】:Is it Possible to send JSON and store it in Azure Tables with JAVA是否可以使用 JAVA 发送 JSON 并将其存储在 Azure 表中
【发布时间】:2016-12-02 09:17:43
【问题描述】:

我正在努力将数据存储在 azure 表中,同时我发现 JSON 支持 Azure 表 here。因此,为了改变计划,现在我有一个 JSON 格式的数据,我需要将它存储在 azure 表中。我发现很少有代码 sn-ps,但都是针对 c# 的。你能指导我吗?

提前致谢

【问题讨论】:

  • 你是怎么解决的?

标签: java azure azure-table-storage


【解决方案1】:

Azure 表存储是 Key/Value 对存储,而不是 document 存储(DocumentDB 就是一个很好的例子)。本质上,一个表包含实体(广义地认为它们是行)并且每个实体都包含一些属性(广义地认为它们是列)。每个属性由三部分组成:属性名称(即键/值对中的键)、属性值(即键/值对中的值)和属性数据类型。

要回答您的问题,是的,您可以将 JSON 文档存储在 Azure 表中,但它作为属性进入,因此您需要为 JSON 文档分配一个键。此外,每个属性的大小不能超过 64KB,因此您需要考虑到这一点。

如果您的要求是存储 JSON 文档,我建议您查看 DocumentDB。更适合存储 JSON 数据,做很多 Azure Tables 做不到的事情。

关于您对 Azure 表的 JSON 支持的评论,它谈到了向 Azure 表发送/检索数据的格式。在早期,数据是使用 ATOM PUB XML 格式传输的,这使得请求负载/响应体非常庞大。使用 JSON 格式,大小大大减小。但是,无论您采用哪种方式,Azure Tables 都会以键/值对格式存储数据。

【讨论】:

    【解决方案2】:

    @AnandDeshmukh,根据我的理解,我想你可能想用 Java 用 C# 编写类似的代码。建议大家可以尝试参考Azure Storage SDK的javadoc用Java重写示例代码。

    例如,您可以使用 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);
    

    【讨论】:

      猜你喜欢
      • 2016-04-01
      • 2021-11-26
      • 1970-01-01
      • 2011-11-25
      • 1970-01-01
      • 1970-01-01
      • 2017-11-23
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多