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

问题描述 投票:16回答:3

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

是否有JSON库及其安装说明?我正在使用fedora 14。

c# .net json mono
3个回答
16
投票

我们不使用json合约序列化程序-而是使用Json.NET。它也应该与单声道一起工作。您不需要安装程序集,只需添加参考并随您的最终软件包一起提供它即可!

编辑:如何添加参考?虽然我不是单开发者...取自here

参考->编辑参考-> .NET程序集->浏览到文件并选择它

否则:嘿,只要按F1


4
投票

我建议查看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);

4
投票

看看JSON.NET:

https://www.newtonsoft.com/json

功能:

  • 用于在.NET对象和JSON之间转换的灵活JSON序列化器
  • LINQ to JSON以手动读取和写入JSON
  • 高性能,比.NET的内置JSON序列化器更快
  • 缩进,易于阅读的JSON
  • 将JSON与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);
    }
© www.soinside.com 2019 - 2024. All rights reserved.