【问题标题】:DocumentDb - get Json representation of DocumentDocumentDb - 获取 Document 的 Json 表示
【发布时间】:2015-05-30 15:44:18
【问题描述】:

是否有简单/任何解决方案将文档数据的 JSON 表示(没有 _rid 等 DocDb 原生属性)放入响应(在存储过程中),或者在 Microsoft.Azure.Documents 命名空间中的某处有解决方案?

【问题讨论】:

标签: c# azure azure-cosmosdb nosql


【解决方案1】:

您可以使用 JavaScript 的删除操作符去除 DocumentDB 的原生属性。看看这个线程:How do I remove a property from a JavaScript object?

这样的事情应该可以工作:

delete doc._rid;
delete doc._ts;
delete doc._etag;
getContext().getResponse().setBody(doc);

【讨论】:

  • 感谢您的回答。在从对象(sproc、控制器内部(MVC 方式)等)中删除属性时,有很多解决方案。我只是希望有一个“本机”解决方案。
【解决方案2】:

我也有同样的问题。我找到了这种方式(在 C# 中):

dynamic d = Newtonsoft.Json.Linq.JObject.Parse(doc.ToString());
string versionData = d["Employees"]["@version"];
string employeeNameData = d["Employees"]["@name"];

其中“Employees”是文档名称(即 Sql 术语中的表名称),版本是该文档的属性。

通过这种方式,您可以对文档内部存储的任何数据进行通用查询。希望这可以帮助! :)

【讨论】:

  • 当然也可以直接做如下:dynamic jsonObj = doc; (其中 doc 是 Microsoft.Azure.Documents.Document)但是,您不能执行以下操作: string versionData = d["Employees"]["@version"];你必须这样做: string versionData = d.Employees.["@version"];这使它有点不通用
猜你喜欢
  • 2017-07-12
  • 2016-09-28
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-03-31
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多