首页 > 解决方案 > 在 C# 中带有 expando 对象的字段'params'

问题描述

我在 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 并更改了一些名称,但我想没有考虑过这种情况。

标签: c#dynamicexpandoobject

解决方案


您可以将 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);

推荐阅读