C# Newtonsoft.Json用法

2023-05-16

目录

一、创建JSON对象

二、创建JSON数组

三、使用Linq to JSON查询

四、将类对象序列化为Json

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

六、常用工具

1.判断Json是否正确

2.添加转义字符

3.去转义字符

4.压缩Json

5.Json转为实体类


源码地址:点击跳转

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

一、创建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 是否出错

2.添加转义字符

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

3.去转义字符

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

  

4.压缩Json

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

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

5.Json转为实体类

JSON转C#实体类-BeJSON.com

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

end

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

C# Newtonsoft.Json用法 的相关文章

随机推荐

  • 最通俗易懂的HashMap深度解析

    文章目录 导言Hash表什么是Hash表为什么要Hash表Hash表核心原理核心概念Hash表hash函数 常见冲突解决方法开放地址法 再散列法 再哈希法链地址法 xff08 拉链法 xff09 java HashMap原理浅析java H
  • SFTP连接失败问题解决小tips

    前几天安装了jumpserver之后 xff0c sftp服务莫名奇妙的挂了 xff0c 也不知道是不是这方面的原因 vsftpd服务检查没有问题 防火墙端口配置检查没有问题 端口监听检查没有问题 我们知道SFTP走的是SSH的端口 xff
  • Error:java: 服务配置文件不正确, 或构造处理程序对象

    在学习注解处理器使用的时候 xff0c 依据这个学习 xff0c 完成后build xff0c 报了个错误 Error java 服务配置文件不正确 或构造处理程序对象javax annotation processing Processo
  • 无自动化测试系统设计方法论

    灵活 敏捷 迭代 自动化测试 辩思 测试必不可少 想想看没有充分测试的代码 哪一次是一次过的 哪一次不需要经历下测试的鞭挞 不要以为软件代码容易改 就对于质量不切实际的自信 那是自大 不适用自动化测试的case 遗留系统 太多的依赖方 不想
  • 模仿 java Optional 设计 c# Optional

    模仿 java Optional 设计 c Optional Unity 环境下 using System span class token punctuation span using JetBrains span class token
  • 关于中台的思考和复盘

    数据中台可以做 xff0c 业务中台不能做 能力共享和聚合的入口可以做 强嵌入的业务中台不能做 中台 中台不是只能是微服务 xff0c 中台还可以是代码复用框架 xff0c 允许业务自己扩展 迭代code as service xff0c
  • 三范式分解算法

    三范式是BC范式的放宽 三范式条件 满足一个即可 gt 是平凡的函数依赖 除了子集和父集的函数依赖 大多的函数依赖都是非平凡的 是关系模式R的一个超码 属性集里的所有属性都被包含在 R的candidate key里 注意 的属性集里的所有元
  • 关系数据库设计 函数依赖 逻辑蕴含

    函数依赖 属性集 决定属性集 则称有函数依赖 to 逻辑蕴含 F能推出 原不直观存在于 函数依赖集F 中的函数依赖
  • 斯密特正交化(matlab)

    斯密特正交化 matlab 数学过程 伪代码如下 function b 61 Gram Schmidt Orthogonalization a row col 61 size a b 1 61 a 1 for i in 2 col for
  • autohotkey[启动][发送键击][click][常用窗口命令]

    启动程序或文档 run命令 run exe file in environment path Run Notepad 不在环境变量中的程序或文档 Run A ProgramFiles Winamp Winamp exe open file
  • 通过键盘移动鼠标光标 autohotkey

    通过键盘移动鼠标光标 MouseMove键 参数定义 MouseMove X Y Speed R 鼠标移动的目标位置的 x y 坐标 可以为 表达式 坐标相对于活动窗口Speed 移动鼠标的速度 xff0c 介于 0 xff08 最快 xf
  • 用Tkinter实现一个离线定时语音播报应用程序

    最近单位领导与我提起 xff0c 说要做一个语音播报功能程序 xff0c 意在定时提醒职工进行抄表工作 在下也是个刚毕业不久的小白 xff0c 从头开始学习Python 对于这个程序虽说小 xff0c 但也只是看起来而已 xff0c 在细节
  • 通过用户POI经纬度获取居住地的房价信息

    Arcmap处理数据 1 建立Map和GDB2 加载数据3加载地图4 导出为点数据5 过滤错误数据6 将过滤后的数据保存为新图层7 转换坐标系为38578 IDW插值9 绘制渔网图Fishnet10 Zonal Statistics As
  • 天干地支

    以下是天干地支的称呼 xff1a 天干地支简称 干支 xff0c 十天干 xff1a 甲 xff08 ji xff09 乙 xff08 y xff09 丙 xff08 b ng xff09 丁 xff08 d ng xff09 戊 xff0
  • spring知识总结

    什么是spring spring是一套提供IOC和AOP功能架 xff0c 为简洁开发提供的一套轻量级框架 主要包括一下几个模块 xff1a spring context xff1a 提供框架式的bean访问方式 xff0c 以及企业级任务
  • CentOS7安装MySQL8.0图文教程(有图有真相,亲测可用)

    下载 MySQL 所需要的安装包 网址 xff1a https dev mysql com downloads mysql Select Operating System 选择 Red Hat xff0c CentOS 是基于红帽的 xff
  • GIT之【ERROR: commit count: 1, latest commit: xxxxx. missing Change-Id in message footer】

    项目场景 xff1a 在一次代码提交的时候 xff0c 怎么也无法提交成功 前情提要 该项目启动时 xff0c 报错npm ERR could not determine executable to run xff0c 然后我参考了这篇文章
  • 百度2020校招测试工程师笔试题 石头剪刀布

    Problem Description 西西打算和一头小猪进行N轮剪刀石头布 xff0c 初始时双方的分数都为0 xff0c 对每一轮而言 xff0c 如果不是平局则胜者得1分 xff0c 败者扣1分 小猪告诉西西它会在其中的M轮出石头 x
  • Activity生命周期(onNewIntent)

    两个Activity A中有一个button xff0c 点击打开B A和B的生命周期怎么执行 span class token class name A span span class token punctuation span onP
  • C# Newtonsoft.Json用法

    目录 一 创建JSON对象 二 创建JSON数组 三 使用Linq to JSON查询 四 将类对象序列化为Json 五 将Json反序列化为类对象 六 常用工具 1 判断Json是否正确 2 添加转义字符 3 去转义字符 4 压缩Json