【发布时间】:2019-06-08 05:31:47
【问题描述】:
我们的应用程序目前正在使用 MongoDb。我们的计划是让它与 Datastore 一起使用。在我们的应用程序中,有一些 API 调用,我们不知道它的响应是如何构造的。因此,我们使用动态类型。我们得到响应并按原样将其放到 Mongodb 中。
据我们研究,Google.Cloud.Datastore.V1 .Net SDK 推动开发人员使用结构化类型。我们必须创建一个实体,该实体具有具有预定义键名的某些属性。
如下图:
MapField<string, Value> fields = new MapField<string, Value>();
fields.Add("d1", "string value");
fields.Add("d2", 30);
fields.Add("d3", 55);
var entity = new Entity
{
Key = key,
Properties = { fields }
};
我已经尝试过为字段设置 API 响应。不幸的是,它最终将响应保存为字符串。
有没有办法实现它?
【问题讨论】:
-
我了解到您正在 Datastore 中创建一个实体,从 API 调用到 C# 应用程序,该实体是根据输入请求参数使用动态字段创建的。您能否分享一个您可能在此应用程序中收到的示例 API 请求,以及您期望在 Datastore 中创建的内容与您获得的内容?
-
让我清除它。 gist.github.com/onuar/728e498db627ecae1d0d10e9639643ce 正如你在上面看到的,我有一个名为 mockedApiResponse 的动态对象,我不知道里面有什么。举个例子,只有三个键,但会有更多。这样,SDK 保存如下:imgur.com/fUasyHL 而且我无法按数字、str 或数组进行过滤。为了让它发挥作用,我必须这样做:gist.github.com/onuar/95ca8fabf929d822849cdd8310313731imgur.com/atuCN4C 它运作良好。但问题是,我必须知道 dJson 的属性(键)。
标签: c# dynamic google-cloud-platform google-cloud-datastore