我正在使用CosmosDB的.NET API,我很难在将它反序列化为类之前弄清楚如何获取CosmosDB查询的原始结果。浏览文档时,我发现的所有示例都将结果转换为特定类或动态。那就是:
//This returns a Document, wich actually is a dynamic...
client.ReadDocumentAsync(...)
//This returns an object of type MyClass, wich I supose is casted internally by the API
client.ReadDocumentAsync<MyClass>(...)
我想要做的是获取结果的原始JSON有效负载以进行检查,而无需将其反序列化为其他任何内容。
有人知道是否可以使用.NET API获取原始结果?如果是这样,怎么样?
在其他情况下,我需要将结果用作ExpandoObject来动态处理它,但我发现api给出的“动态”结果不是“可扩展的”所以我被迫序列化它们然后反序列化再次以递归形式进入ExpandoObject。此外,结果被_rid,Etag等属性污染,我不需要在我的对象上。这很烦人。
我认为序列化再次反序列化是一个不必要的开销,所以也许优化方法是获取原始JSON结果并编写一个方法直接反序列化为Expando。
或者我可能会失去任何一点,并且有一个API可以将结果作为Expandos获得。有人知道吗?
答案 0 :(得分:0)
查看我之前的这个问题:
Converting arbitrary json response to list of "things"
Altough我没有命名,有问题的API实际上是DocumentDb,所以我认为你将能够使用该代码。
答案 1 :(得分:-1)
这里看到了一些不好的建议,但它本身内置于SDK中。
Document doc = cosmosClient.ReadDocumentAsync(yourDocLink);
string json = doc.ToString();