C# 从Microsoft DynamicJsonObject提取JSON字符串的简单方法是什么?

C# 从Microsoft DynamicJsonObject提取JSON字符串的简单方法是什么?,c#,javascript,json,C#,Javascript,Json,当使用Microsoft名称空间System.Web.Helpers和System.Web.Script.Serialization时,我希望Microsoft序列化程序能够很好地处理Microsofts动态JSON对象。事实证明,这是一个天真的假设。JavaScriptSerializer将对象序列化为“{}”。对于这个看似琐碎的任务,推荐的方法是什么 dynamic obj = new DynamicJsonObject(new Dictionary<string,objec

当使用Microsoft名称空间
System.Web.Helpers
System.Web.Script.Serialization
时,我希望Microsoft序列化程序能够很好地处理Microsofts动态JSON对象。事实证明,这是一个天真的假设。JavaScriptSerializer将对象序列化为“{}”。对于这个看似琐碎的任务,推荐的方法是什么

     dynamic obj = new DynamicJsonObject(new Dictionary<string,object>());
     obj.FirstName = "Henry";
     obj.LastName = "Ford";
     JavaScriptSerializer jsc = new JavaScriptSerializer();
     string str = jsc.Serialize( obj );
     Assert.AreNotEqual(str, "{}"); // Does not fail
dynamic obj=new DynamicJsonObject(new Dictionary());
obj.FirstName=“亨利”;
obj.LastName=“福特”;
JavaScriptSerializer jsc=新的JavaScriptSerializer();
字符串str=jsc.Serialize(obj);
Assert.arnotequal(str,“{}”);//不失败
试试看

还有
ExpandoObject
s

dynamic obj = new ExpandoObject();
obj.FirstName = "Henry";
obj.LastName = "Ford";
string s = JsonConvert.SerializeObject(obj);
反序列化到动态对象也是可能的

dynamic obj2 = JsonConvert.DeserializeObject(@"{""FirstName"":""Henry"",""LastName"":""Ford""}");
Console.WriteLine(obj2.FirstName + " " + obj2.LastName);

Json.Net是否提供了DynamicJsonObject的替代方案,还是应该使用System.Web.Helpers实现?我对我在系统下发现的东西印象不深。如果微软的部件损坏(或“一团糟”,视情况而定),我会将其标记为已回答。@JackWester,我不确定我是否理解你的问题,因为你不需要
DynamicJsonObject
来处理动态对象。我更新了答案,说明了如何使用
ExpandoObject
实现此目的–L.B 11分钟ago@LB,我认为DynamicJsonObject将提供Json功能。系统命名空间中的其他类生成的Javascript对象表示法(Json)不会为DynamicJsonObject生成Json。所以你是对的,我不需要它。事实上,我认为这些新类是向用户倾注的,而不是经过仔细的审查。我将远离这些名称空间。
dynamic obj = new ExpandoObject();
obj.FirstName = "Henry";
obj.LastName = "Ford";
string s = JsonConvert.SerializeObject(obj);
dynamic obj2 = JsonConvert.DeserializeObject(@"{""FirstName"":""Henry"",""LastName"":""Ford""}");
Console.WriteLine(obj2.FirstName + " " + obj2.LastName);