2015-05-30 32 views
0

是否有一个简单/任何解决方案将Document数据的JSON表示(没有DocDb本机属性,如_rid等)放入响应中(在存储过程中),还是Microsoft中存在解决方案。 Azure.Documents命名空间?DocumentDb - 获取Json表示文档

+0

我编辑了你的标题。请参阅:“[应该在其标题中包含”标签“](http://meta.stackexchange.com/questions/19190/)”,其中的共识是“不,他们不应该”。 –

回答

2

您可以使用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); 
+0

谢谢你的回答。当涉及到从对象中移除属性(sproc,控制器内部(MVC智能)等)时,有很多解决方案。我只是希望有一个“原生”解决方案。 –

2

我有同样的问题。我发现这种方式(在C#):

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

当“员工”是文件名(即,在SQL术语表名),和版本是该文件的属性。

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

+0

当然,您也可以直接执行以下操作: dynamic jsonObj = doc; (其中doc是Microsoft.Azure.Documents.Document) 但是,则不能执行以下操作: string versionData = d [“Employees”] [“@ version”]; 你必须这样做: string versionData = d.Employees。[“@ version”]; ,这使它有点不通用 – Deb