【问题标题】:field 'params' with an expando object in C#在 C# 中带有 expando 对象的字段'params'
【发布时间】:2019-05-07 20:09:24
【问题描述】:

我在 C# 中有以下内容:

dynamic JsonObject = new ExpandoObject();
JsonObject.action       = Action;
JsonObject.arguments    = JsonArguments;
JsonObject.id           = Id;
JsonObject.sig          = Signature;
var Json = JsonConvert.SerializeObject(JsonObject);

我需要改变:

JsonObject.arguments = JsonArguments;

进入:

JsonObject.params = JsonArguments;

但我不能将 params 用作带有 expando 对象的字段名称。

构建该 json 的好方法是什么?

它与 deribit.com 一起使用。他们发布了 API V2 并更改了一些名称,但我想没有考虑过这种情况。

【问题讨论】:

  • @Selvin:我不知道那种语法!效果很好,非常感谢!
  • 我知道它可以用于字符串,但我不知道它可以用于其他用途,很高兴知道!

标签: c# dynamic expandoobject


【解决方案1】:

您可以将 expando 转换为字典或直接使用字典,例如:

var jsonObject = new ExpandoObject() as IDictionary<string, Object>;

jsonObject.Add("action", Action);
jsonObject.Add("params", JsonArguments);
jsonObject.Add("id", Id);
jsonObject.Add("sig", Signature);    

var json = JsonConvert.SerializeObject(JsonObject);

【讨论】:

  • 这可行,但 Selvin 的解决方案要简单得多
  • 字典在动态场景中会很好,其中您在数组中有键用于示例。但是,好的,很高兴能提供帮助(如果我提供帮助的话)。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-06-06
  • 2010-11-22
  • 2011-01-17
相关资源
最近更新 更多