使用Newtonsoft.Json.dll序列化和反序列化

关键字:【序列化】【反序列化】【Json】【Newtonsoft.Json】

序列化和反序列化的规则

<1>NewtonSoft只能操作public字段or属性

<2>Json字符串若提供类中没有的字段or属性,反序列化时会忽视之,并不抛出异常

<3>反序列化的过程:

调用无参构造函数,new出一个实例,然后使用Json字符串中包含的字段or属性为成员赋值,Json字符串未提供的字段or属性的值是无参构造函数初始化的值或是0,false,null;若类未提供无参构造函数,则调用有参构造函数,但是要保证类仅有一个有参构造函数,多个有参构造函数时,若不指定哪个构造函数来反序列化,编译器会报错。所以,尽可能的为会进行序列化和反序列化的类提供无参构造函数。

class Person
{
    private string name;
    public string Name { get => name; set => name = value; }

    //年龄
    private int age;
    public int Age { get => age; set => age = value; }

    //城市
    public string City { get; set; }

    //技能
    public List<string> languages;

    public Person()
    {
        Name = "Andrew Magic";
        Age = 20;
        City = "Zhuhai";
        languages = new List<string>();
    }
}

序列化一个对象

Person p1 = new Person();
string p1JsonStr = JsonConvert.SerializeObject(p1);

反序列化一个对象

string p2JsonStr = "{\"Name\":\"Jack\" }";
Person p2 = JsonConvert.DeserializeObject<Person>(p2JsonStr);

序列化多个对象

Person p3 = new Person();
p3.Name = "LiMing";
p3.Age = 22;
p3.City = "Shanghai";
p3.languages.AddRange(new string[] { "C", "Java", "PHP" });

Person p4 = new Person();
p4.Name = "ZhangSan";
p4.Age = 20;
p4.City = "Beijing";
p4.languages.AddRange(new string[] { "C#", "Python", "Go" });

List<Person> list = new List<Person> { p3, p4 };
string objectsJsonStr = JsonConvert.SerializeObject(list);

反序列化多个对象

List<Person> list = JsonConvert.DeserializeObject<List<Person>>(objectsJsonStr);
foreach (Person item in list)
{
    Console.WriteLine(item.Name);
}

Json时间字符串的处理

读取Json字符串的技巧

原文地址:https://www.cnblogs.com/liweiaila/p/10360666.html

时间: 2024-10-01 11:04:17

使用Newtonsoft.Json.dll序列化和反序列化的相关文章

C# 通过Newtonsoft.Json.dll序列化日期的处理

Newtonsoft.Json.dll提供了非常好的Json序列化和反序列化方式,但是对日期的处理却让我纠结了很久.首先定义类如下: public class Student{ public int Id{get;set;} public string Name{get;set;} public DateTime BirthDay{get;set;} } 序列化代码如下: Student stu = new Student() { Id = 1, Name = "zhangsan",

Newtonsoft.Json 的序列化与反序列化

转自:http://www.cnblogs.com/08shiyan/p/3464028.html 首先补充一点,Json.Net是支持序列化和反序列化DataTable,DataSet,Entity Framework和NHibernate的.我举例说明DataTable的序列化和反序列化.创建一个DataTable对象,如下: DataTable dt = new DataTable(); DataColumn dcName = new DataColumn("Name"); Da

一:Newtonsoft.Json 支持序列化与反序列化的.net 对象类型;

Json.net 序列化程序会将.Net 值转换为json值,表格中是支持转换的对象类型: .net 对象类型 转换后的Json 类型 IList, IEnumerable, IList<T>, Array,datatable json数组 IDictionary, IDictionary<TKey, TValue> json对象 Object (more detail below) json对象 Json数组教程:http://www.runoob.com/json/js-jso

Newtonsoft.Json.JsonConvert 序列化与反序列化

private void Form6_Load(object sender, EventArgs e) { stud1 objstud1 = new stud1() { id = 100, sex = "男", birthday = new DateTime(1972, 5, 29),fname="zhang" }; string str= Newtonsoft.Json.JsonConvert.SerializeObject(objstud1); stud0 ob

使用Newtonsoft.Json.dll(JSON.NET)动态解析JSON、.net 的json的序列化与反序列化(一)

在开发中,我非常喜欢动态语言和匿名对象带来的方便,JSON.NET具有动态序列化和反序列化任意JSON内容的能力,不必将它映射到具体的强类型对象,它可以处理不确定的类型(集合.字典.动态对象和匿名对象),在这篇文章中我将通过JToken.JObject和JArray来动态解析JSON对象,使它很容易创建和检索的JSON内容而无需基础类型.通过JObject和JArray创建JSON对象我们先用非常简单的方法来动态创建一些JSON,可通过JToken派生的JSON.NET对象来进行,最常见的JTo

.Net使用Newtonsoft.Json.dll(JSON.NET)对象序列化成json、反序列化json示例教程

JSON作为一种轻量级的数据交换格式,简单灵活,被很多系统用来数据交互,作为一名.NET开发人员,JSON.NET无疑是最好的序列化框架,支持XML和JSON序列化,高性能,免费开源,支持LINQ查询.目前已被微软集成于webapi框架之中,因此,熟练掌握JSON.NET相当重要,这篇文章是零度参考官网整理的示例,通过这些示例,可以全面了解JSON.NET提供的功能. Newtonsoft.Json的地址: 官网:http://json.codeplex.com/ 源码地址:https://gi

Newtonsoft.Json.dll 反序列化JSON字符串

上一篇JSON博客<JSON入门级学习小结--JSON数据结构>中已对JSON做了简单介绍,JSON字符串数组数据样式大概是这样子的: 如今因为项目需求(asp.net web网站,前台向后台传递JSON数据,并对JSON数据处理,详述见博客< <项目经验>--通过js获取前台数据向一般处理程序传递Json数据,并解析Json数据,将前台传来的Json数据写入数据库表中 >),需要对传递的JSON数据反序列化.于是从网上找了许多JSON反序列化的例子,最终决定使用New

Json的序列化与反序列化

想想某一天,你在看LOL攻略的时候,系统突然崩溃了,接着浏览器出现了密密麻麻的LOL帐号和密码,你一定在想:"天啊,这次要发财了,说不定里面有超凡号或者王者号,我得赶紧全部记下来."然而说完你就惊呆了,那么多的帐号密码,而且全部写在了Json里面,一个一个复制粘贴要记到什么时候啊...如果这时候我在你身边,我一定会帮助你的,前提是,要分几个王者号给我噢...  言归正传. 上面举的例子虽然有点不太现实,但其实是想和大家说明一个问题,如果要解析Json或XML,请不要使用检索字符串的方式

ASP.NET 中JSON 的序列化和反序列化

JSON是专门为浏览器中的网页上运行的JavaScript代码而设计的一种数据格式.在网站应用中使用JSON的场景越来越多,本文介绍ASP.NET中JSON的序列化和反序列化,主要对JSON的简单介绍,ASP.NET如何序列化和反序列化的处理,在序列化和反序列化对日期时间.集合.字典的处理. 一.JSON简介: JSON(JavaScript Object Notation,JavaScript对象表示法)是一种轻量级的数据交换格式. JSON是"名值对"的集合.结构由大括号''{}'