如何将json转换为NameValueCollection

你怎么能简单地将一串JSON转换为C# NameValueCollection ,最好不使用第三方解析器?

我不确定为什么每个人仍然建议使用JSON.NET来反序列化JSON。 我写了一篇关于如何将JSON反序列化为C#的博客文章 。

简而言之,它是这样的:

 using System.Web.Script.Serialization; var jss = new JavaScriptSerializer(); var dict = jss.Deserialize>(jsonText); NameValueCollection nvc = null; if (dict != null) { nvc = new NameValueCollection(dict.Count); foreach (var k in dict) { nvc.Add(k.Key, k.Value); } } } var json = jss.Serialize(dict); Console.WriteLine(json); 

请务必添加对System.Web.Extensions.dll的引用。

注意:我通常反序列化为dynamic ,所以我假设NameValueCollection可以工作。 但是,我还没有确认它是否确实存在。

编辑

没有第三方开发的纯.net解决方案看起来: JavaScriptSerializer – 字典到JSON序列化和反序列化


利用Json.NET

 string jsonstring = @"{""keyabc"":""valueabc"",""keyxyz"":""valuexyz""}"; Dictionary values = JsonConvert.DeserializeObject>(jsonstring); 

检查@jon答案提示相同: .Net Linq to JSON with Newtonsoft JSON library