C# Newtonsoft.Json用法

爱编程的鼠鼠 2024-02-02 00:19:32

目录

一、创建JSON对象

二、创建JSON数组

三、使用Linq to JSON查询

四、将类对象序列化为Json

五、将Json反序列化为类对象

六、常用工具

1.判断Json是否正确

2.添加转义字符

3.去转义字符

4.压缩Json

5.Json转为实体类

源码地址:点击跳转

在NuGet 里直接搜索 Newtonsoft.Json,点击安装即可

https://img-blog.csdnimg.cn/c5fbbbe9fb534b6290a366ff8e1770d2.png

一、创建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数组

// 创建数组
JArray array = new JArray();
array.Add(new JValue("吃饭"));
array.Add(new JValue("睡觉"));
obj.Add("Favorites", array);
obj.Add("Remark", null);

Console.WriteLine(array.ToString());

上面代码可以简化成:

JArray array = new JArray("吃饭", "睡觉");

三、****使用Linq to JSON查询

string json = "{\"Name\" : \"Jack\", \"Age\" : 34, \"Colleagues\" : [{\"Name\" : \"Tom\" , \"Age\":44},{\"Name\" : \"Abel\",\"Age\":29}] }";
//将json转换为JObject
JObject jObj = JObject.Parse(json);
JToken ageToken =  jObj["Age"];
Console.WriteLine(ageToken.ToString());

四、将类对象序列化为Json

public class Student
{
    public int ID { get; set; }
    public string Name { get; set; }
}

Student student = new Student();
student.ID = "1";
student.Name = "jack";

//序列化为JSON
string json = JsonConvert.SerializeObject(student);

五、将Json反序列化为类对象

将 Json 字符串反序列化成一个类对象

public class Student
{
    public int ID { get; set; }
    public string Name { get; set; }
}

string json = ".....";
Student student = JsonConvert.DeserializeObject<Student>(json);

将 Json 字符串反序列化为 JObject

string json = "{\"ID\":1,\"Name\":\"张三\",\"Favorites\":[\"吃饭\",\"睡觉\"]}";
 
JObject obj = JObject.Parse(json);

六、常用工具

在上面的json代码中都带有 “\” 字符,这个叫转义字符,一般直接写在代码中的json如果没有转义,会报错的,在这里给大家介绍一些Json相关的小工具。

1.判断Json是否正确

JSON在线 | JSON解析格式化—SO JSON在线工具

在这个网站中,可以判断 json 是否出错

https://img-blog.csdnimg.cn/6c5d23ee8b924de8ac3b43abc1a2957a.png

2.添加转义字符

转义,就是在 json 中加入 “\”,这个在变量的定义时,会用到

https://img-blog.csdnimg.cn/b21202237d554682bac0709bae8a1e3a.png

3.去转义字符

去转义,就是去掉 json 中的 “\”

https://img-blog.csdnimg.cn/ce251c7fc22a4c8380933d80dc26704e.png

  

4.压缩Json

压缩,是将自动对齐的 json 变为一行,并去掉空格,使字符串的字节数变小

https://img-blog.csdnimg.cn/ce4872dcc28747d3a545c8f9c152e887.png

另外,推荐一个网站,可以将 json 转换为实体类

5.Json转为实体类

JSON转C#实体类-BeJSON.com

https://img-blog.csdnimg.cn/e1f935d67eab45ef98a405e1da3c690c.png

输入json 就可以转换成对于的字段了,在我们做反序列化时,非常好用,不过,过于复杂的json,转换还是有点问题的,需要自己手动修改一下。

end


文章来源: https://blog.csdn.net/qq_38693757/article/details/113728350
版权声明: 本文为博主原创文章,遵循CC 4.0 BY-SA 知识共享协议,转载请附上原文出处链接和本声明。


...全文
50 回复 打赏 收藏 转发到动态 举报
写回复
用AI写文章
回复
切换为时间正序
请发表友善的回复…
发表回复

6,590

社区成员

发帖
与我相关
我的任务
社区描述
微软技术社区为中国的开发者们提供一个技术干货传播平台,传递微软全球的技术和产品最新动态,分享各大技术方向的学习资源,同时也涵盖针对不同行业和场景的实践案例,希望可以全方位地帮助你获取更多知识和技能。
windowsmicrosoft 企业社区
社区管理员
  • 微软技术分享
  • 郑子铭
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

微软技术社区为中国的开发者们提供一个技术干货传播平台,传递微软全球的技术和产品最新动态,分享各大技术方向的学习资源,同时也涵盖针对不同行业和场景的实践案例,希望可以全方位地帮助你获取更多知识和技能。

予力众生,成就不凡!微软致力于用技术改变世界,助力企业实现数字化转型。

试试用AI创作助手写篇文章吧