我需要一个易于设置的C#.NET JSON库,它可以很好地处理强类型的列表和词典。我一直在使用fastJSON,它轻巧便携。但是,方法ToJSON
和ToObject
并不总是适用于强类型对象,例如List<string>
。我需要一个可以正确执行以下操作的简单库:
// parse a JSON file
List<string> names = JSON.parse<List<string>>(json1);
Dictionary<string, int> ids = JSON.parse<Dictionary<string, int>>(json);
// stringify an object
string json = JSON.stringify(names);
string json = JSON.stringify(ids);
显然理想的库应该很快(足够快以扩展到数百MB的JSON),以及可移植(小代码,没有依赖),但没有fusses。我现在非常绝望,所以任何有效的方法都可以。
答案 0 :(得分:4)
http://james.newtonking.com/projects/json-net.aspx是通常的答案,但还有更多。
List<string> names = new List<string>() {"Mike","Joe","Jane"};
Dictionary<string, int> ids = new Dictionary<string, int>()
{
{"Mike",1},
{"Joe",2},
{"Jane",3},
};
// ["Mike","Joe","Jane"]
string nameJson = Newtonsoft.Json.JsonConvert.SerializeObject(names);
//{"Mike":1,"Joe":2,"Jane":3}
string idsJSon = Newtonsoft.Json.JsonConvert.SerializeObject(ids);
答案 1 :(得分:2)
检查ServiceStack.Text:https://github.com/ServiceStack/ServiceStack.Text
我已经在几个项目中使用它并且非常好。
来自维基页面:
ServiceStack.Text是一个独立的,无依赖的序列化 包含ServiceStack所有文本处理的库 功能,包括:
JsonSerializer TypeSerializer (JSV-Format) CsvSerializer T.Dump extension method StringExtensions - Xml/Json/Csv/Url encoding, BaseConvert, Rot13, Hex escape, etc. Stream, Reflection, List, DateTime, etc extensions and utils