【问题标题】:Converting dynamic to json (anonymous) [closed]将动态转换为 json(匿名)[关闭]
【发布时间】:2020-01-14 07:03:37
【问题描述】:

我有一个 dynamic 对象,我必须将其转换为 json(匿名),以便作为参数传递给 API。进行这种转换的最佳方法是什么?

有这个帖子:

How to convert a dynamic object to JSON string c#?

但这并不完全适用于我,因为我不能使用var,如下面的评论中所述。

谢谢 阿南德

试图隐瞒

 dynamic d = new ExpandoObject()
 d.prop = "value"

收件人:

var json = new {prop = "value"}

【问题讨论】:

  • 我看过这篇文章,但我认为它不适用于我的情况。我不能使用 var 开始,因为我必须在创建后动态添加属性。
  • 如果您需要 JSON,为什么要创建动态对象?如果你有{"prop" = "value"},只需解析它。
  • 是的,我是这样做的:param as Dictionary<string, object> 我序列化了var payloadRequest = JsonConvert.SerializeObject(param); var json = JObject.Parse(payloadRequest);

标签: c#


【解决方案1】:

如果你在.NET Core你可以使用System.Text.Json;并序列化为dynamic

public static void Main()
{
    dynamic w = new ExpandoObject() { Date = DateTime.Now, Item1 = 30 };
    w.Item2 = 123;
    Console.WriteLine(JsonSerializer.Serialize<dynamic>(w));
}

class ExpandoObject
{
    public DateTimeOffset Date { get; set; }
    public int Item1 { get; set; }
    public int Item2 { get; set; }
}

fiddle here

但我不明白为什么要使用dynamic(可能背后有一些逻辑)

如果你在.Net Framework,你需要使用Newtonsoft Json,这基本上是一样的东西

dynamic results = JsonConvert.SerializeObject<dynamic>(w);

【讨论】:

    猜你喜欢
    • 2012-01-17
    • 1970-01-01
    • 2013-02-15
    • 2015-12-26
    • 1970-01-01
    • 2012-12-25
    • 1970-01-01
    • 2013-08-03
    • 1970-01-01
    相关资源
    最近更新 更多