.NET / WPF中的通用JSON解析器?

我已经阅读了很多关于如何使用DataContractJsonSerializer将JSON对象反序列化为特定对象的教程。 但是,我想将我的对象反序列化为由字符串,数组或字典组成的字典,例如当我说JsonObject.Parse(myJSONstring)时System.Json与SilverLight一起使用。

是否可以在我的WPF项目中使用System.Json的等价物?

(只是一个简短的背景:我正在获取有很多信息的JSON对象,我只是想用一点来填充一个String数组)

干杯

看一下http://json.org/的C#部分(scoll到底部),他们有几个应该有用的序列化器和解析器实现。

只需使用.NET的内置JavaScriptSerializer。

var jss = new JavaScriptSerializer(); var data = jss.Deserialize(jsonString); //"data" actually implements IDictionary var p1 = data["Property1"]; var p2 = data["Property2"]; 

别忘了引用“System.Web.Extensions”

我成功使用了JayRock: http ://jayrock.berlios.de/

 public class JayRockMarshaller : IMarshaller { public ICollection Read(string text) { return (ICollection)new ImportContext().Import(new JsonTextReader(new StringReader(text))); } public string Write(ICollection objectToMarshal) { var writer = new StringWriter(); new ExportContext().Export(objectToMarshal, new JsonTextWriter(writer)); return writer.ToString(); } } 

适用于字典和列表,如梦。

另请查看https://github.com/jlarsson/Kiwi.Json它处理各种数据类型,如果内置不适合,您可以轻松创建自己的转换器。

有博客,你可以在这里找到例如: http : //dancewithcode.wordpress.com/2012/03/24/case-study-custom-json-converter-for-datatable/