0

我需要一个易于设置的 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),并且是可移植的(小代码,无依赖关系),但不要大惊小怪。我现在很绝望,所以任何有效的东西都很好。

4

2 回答 2

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);
于 2012-07-31T17:00:02.050 回答
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
于 2012-07-31T17:00:35.730 回答