RestSharp/json.NET 将数组序列化为 JSON 对象

本文关键字:序列化 JSON 对象 数组 json NET RestSharp | 更新日期: 2023-09-27 18:31:23

我有一个小情况。我正在使用 RestSharp 与 Web 服务交互,该服务要求我发送以下内容作为请求的一部分:

{
    "a":"a value",
    "b":"b value"
}

这一切都很好,很花花公子,因为您可以简单地使用这样的class

public class MyClass
{
    public string A { get; set; }
    public string B { get; set; }
}

但是,我不知道运行时的属性名称。因此,我尝试使用 ExpandoObject ,但当然,这只是序列化为 JSON 数组:

[
    "a":"a value",
    "b":"b value"
]

因此,似乎我需要能够将Dictionary(或IEnumerable<KeyValuePair<string, string>>)序列化(和反序列化)为JSON对象(换句话说,使用大括号而不是括号)。

有谁知道我该怎么做,最好是使用 Json.NET 属性,以便可以在其他地方重用该功能?

RestSharp/json.NET 将数组序列化为 JSON 对象

使用JObject怎么样?

var obj = new JObject();
obj["One"] = "Value One";
obj["Two"] = "Value Two";
obj["Three"] = "Value Three";
var serialized = obj.ToString(Formatting.None);

给你

{"One":"Value One","Two":"Value Two","Three":"Value Three"}

使用 .net class libs 中的 JavascripSerializer 对象。它支持对正在序列化的对象进行反射

请参阅 MSDN 文档