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

时间:2012-04-17 21:41:24

标签: c# .net serialization json.net restsharp

我有一点情况。我正在使用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属性,这样功能可以在别处重复使用?

2 个答案:

答案 0 :(得分: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"}

答案 1 :(得分:0)

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

请参阅msdn docs