4

我有一点小情况。我正在使用 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"
]

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

有谁知道我可以如何做到这一点,最好使用 Json.NET 属性,以便可以在其他地方重用该功能?

4

2 回答 2

3

使用 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"}
于 2012-04-17T22:29:33.120 回答
0

使用 .net 类库中的 JavascripSerializer 对象。它支持对正在序列化的对象的反射

msdn 文档

于 2012-04-17T22:35:14.170 回答