【问题标题】:Easy to use strongly-typed JSON library for C#易于使用的 C# 强类型 JSON 库
【发布时间】:2012-07-29 12:35:26
【问题描述】:

我需要一个易于设置的 C# .NET JSON 库,它可以很好地与强类型列表和字典一起工作。我一直在使用fastJSON,它轻巧便携。但是ToJSONToObject 方法并不总是适用于强类型对象,例如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),并且可移植(小代码,无依赖性),但不要大惊小怪。我现在很绝望,所以一切正常。

【问题讨论】:

    标签: c# .net json oop list


    【解决方案1】:

    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);
    

    【讨论】:

    • 解析它是什么意思?你的意思是把 JSON 转换成一个对象吗?
    • 解析是指将JSON字符串转换为运行时类对象。
    【解决方案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
    

    【讨论】:

      猜你喜欢
      • 2011-09-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多