Bootstrap

Newtonsoft.Json 入门介绍

本人是C#小白,这里摘抄并整理了两位大神的文章:

Newtonsoft.Json笔记 -JToken、JObject、JArray详解

Json 基于类 Newtonsoft.Json.Linq.JToken的应用简介

简单介绍如何使用Newtonsoft.Json类库和操作Json对象,这里主要介绍Linq to Json类。

Newtonsoft.Json封装类实现了JToken,直接对JSON进行增删改查的操作,很好的解决了动态解析json数据的问题,

JToken的层次结构是这样的:

JToken         -抽象基类
  JContainer     - 能够包含其它JTokenJToken抽象基类
    JArray     - 表示一个JSON数组(包含一个有序的List)
    JObeject    - 表示一个JSON对象(包含一个IEnumerable
    JProperty    - 表示一个JSON属性(在JObject中是一个name/JToken键值对)
  JValue      - 表示一个原生JSON值(string,number,boolean,null)

一,Linq to Json

使用Linq to Json前,需要引用Newtonsoft.Json的dll和using Newtonsoft.Json.Linq的命名空间。

Linq to Json主要使用到JObject, JArray, JProperty和JValue这四个对象,以及一个特殊的JToken对象。

  • JObject:基本的Json对象,用来生成一个JSON对象,简单来说就是生成”{}”,
  • JArray用来生成一个JSON数组,也就是”[]”,
  • JProperty用来生成一个JSON数据,格式为key/value的值,
  • 而JValue则直接生成一个JSON的Key的Value
  • JToken 用于存放Linq to JSON查询后的结果

1,创建JSON对象

JObject staff = new JObject();
staff.Add(new JProperty("Name", "Jack"));
staff.Add(new JProperty("Age", 33));
staff.Add(new JProperty("Department", "Personnel Department"));
staff.Add(new JProperty("Leader", new JObject(new JProperty("Name", "Tom"), new JProperty("Age", 44), new JProperty("Department", "Personnel Department"))));
Console.WriteLine(staff.ToString());

还可以通过以下方法创建Json对象:

方法 说明
JObject.Parse(string json) json含有JSON对象的字符串,返回为JObject对象</
;