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