如何在Mono中反序列化JSON字符串?

时间:2011-06-22 09:36:18

标签: c# .net json mono

如何在C#(Mono)中反序列化JSON字符串?

是否有JSON库以及如何安装它的说明?我正在使用fedora 14。

3 个答案:

答案 0 :(得分:15)

我们没有使用json契约序列化程序 - 而是使用Json.NET。它也应该与单声道一起使用。
你不需要安装组件,只需添加一个参考,并提供最终的包装!

修改
如何添加参考?虽然我不是一个单一的开发者......取自here

  

参考文献 - >编辑参考 - > 。净   装配 - >浏览文件&选择它

否则:嘿,只需点击F1

答案 1 :(得分:3)

我建议查看ServiceStack.NET Text。与JSON.NET相比,它的速度非常快。

序列化字典的示例:

ServiceStack.NET

var jsonSerializer = new JsonSerializer<Dictionary<String, Object>>();
var result = jsonSerializer.SerializeToString(dict);

JSON.NET

var result = JsonConvert.SerializeObject(dict, Formatting.Indented);

答案 2 :(得分:3)

看看JSON.NET:

http://components.xamarin.com/gettingstarted/json.net

功能

  • 用于在.NET对象和JSON之间进行转换的灵活JSON序列化程序
  • LINQ to JSON用于手动读取和写入JSON
  • 高性能,比.NET的内置JSON序列化器更快
  • 书写缩进,易于阅读的JSON
  • 将XML转换为XML

序列化和反序列化的示例:

    using Newtonsoft.Json;
    ...

    public class Person
    {
        public string Name { get; set; }
        public DateTime Birthday { get; set; }
    }

    void PersonToJsonToPersonExample ()
    {
        var person = new Person { Name = "Bob", Birthday = new DateTime (1987, 2, 2) };

        var json = JsonConvert.SerializeObject (person);
        Console.WriteLine ("JSON representation of person: {0}", json);

        var person2 = JsonConvert.DeserializeObject<Person> (json);
        Console.WriteLine ("{0} - {1}", person2.Name, person2.Birthday);
    }