c# Json + Newtonsoft.Json 使用

一:什么是 Json
Json ,全称 JavaScript Object Notation, 即 JavaScript 对象标记法,是一种轻量级的数据交换格式。
采用完全独立于编程语言的文本格式来存储和表示数据, 不仅容易阅读和编写,而且也容易解析和生成,有效的提升了网络传输效率,在与后端的数据交互中有较为广泛的应用。
通俗的说,Json 就是按照一定规则排列的字符串。
二:Json 的用途
1)服务器数据的交互。
2)配置文件。
3)手机数据的交互。
通俗的说,Json 不仅可以保存数据,还可以与服务器间传递数据。
三:Json 的序列化与反序列化
1)序列化:将“对象”转换成“字节序列”的过程。
2)反序列化:将“字节序列”恢复成“对象”的过程。
四:Json 语法规则
1)数据在“名称/值对”中。名称(name)置于双引号中,后面写一个冒号,然后是值,值(value)可以是字符串、数字、布尔值、null、对象和数组。
2)并列数据间由逗号分隔,最后一个数据不需要加逗号。
3)花括号 { } 保存对象(Object),对象可以包含多个“名称/值对”。
4)方括号 [ ] 保存数组(Array),数组可以包含多个对象。
五:Json 举例:
{
    "name": "中国",
    "province": [{
        "name": "黑龙江",
        "cities": {
            "city": ["哈尔滨", "大庆"]
        }
    }, {
        "name": "广东",
        "cities": {
            "city": ["广州", "深圳", "珠海"]
        }
    }, {
        "name": "*",
        "cities": {
            "city": ["台北", "*"]
        }
    }, {
        "name": "*",
        "cities": {
            "city": ["乌鲁木齐"]
        }
    }]
}
六:校验工具
https://www.sojson.com/
七:Newtonsoft.Json 使用
1. Nuget 中查找 Newtonsoft.Json 选择稳定版本安装

2.  /// <summary>
    /// json 转 dynamic
    /// </summary>
    /// <param name="value"></param>
    /// <returns></returns>
    public static dynamic ToDynamic(this string value)
    {
        try
        {
            return JsonConvert.DeserializeObject<dynamic>(value);
        }
        catch (Exception ex)
        {
            return null;
        }
    }
    
    /// <summary>
    /// object 转 Json 转换错误返回 string.empty
    /// </summary>
    /// <param name="obj"></param>
    /// <returns></returns>
    public static string ToJson(this object obj)
    {
        try
        {
            JsonSerializerSettings settings = new JsonSerializerSettings();
            settings.Formatting = Formatting.Indented;
            settings.DefaultValueHandling = DefaultValueHandling.Include;
            settings.NullValueHandling = NullValueHandling.Include;
            return JsonConvert.SerializeObject(obj, settings);
        }
        catch (Exception ex)
        {
            return string.Empty;
        }
    }
上一篇:Anaconda 安装及Python 多版本间切换


下一篇:未能加载文件或程序集“Newtonsoft.Json”或它的某一个依赖项。找到的程序集清单定义与程序集引用不匹配。 (异常来自 HRESULT:0x80131040)