广告
返回顶部
首页 > 资讯 > 后端开发 > 其他教程 >C#Newtonsoft.Json用法详解
  • 166
分享到

C#Newtonsoft.Json用法详解

C#Newtonsoft.Json 2023-02-06 12:02:12 166人浏览 八月长安
摘要

目录一、创建JSON对象二、创建jsON数组三、使用Linq to JSON查询四、将类对象序列化为Json五、将Json反序列化为类对象六、常用工具1.判断Json是否正确2.添加

源码地址:点击跳转

在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#实体类

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

到此这篇关于C# Newtonsoft.Json用法详解的文章就介绍到这了,更多相关C# Newtonsoft.Json内容请搜索编程网以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程网!

--结束END--

本文标题: C#Newtonsoft.Json用法详解

本文链接: https://www.lsjlt.com/news/194329.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • C#Newtonsoft.Json用法详解
    目录一、创建JSON对象二、创建JSON数组三、使用Linq to JSON查询四、将类对象序列化为Json五、将Json反序列化为类对象六、常用工具1.判断Json是否正确2.添加...
    99+
    2023-02-06
    C# Newtonsoft.Json
  • C#使用Newtonsoft.Json中的JObject对象
    案例1 json {     "Name": "Jack",     "Age": 34,     "Colleagues": [{         "Name": "Tom",  ...
    99+
    2022-11-13
  • C# newtonsoft.json中文乱码问号怎么解决
    这篇“C# newtonsoft.json中文乱码问号怎么解决”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“C#&...
    99+
    2023-07-02
  • Newtonsoft.Json怎么在c#项目中使用
    本篇文章为大家展示了 Newtonsoft.Json怎么在c#项目中使用,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。1 实体类的 Json 序列化和反序列化我们以如下的 Person 类举例,其中...
    99+
    2023-06-06
  • C#newtonsoft.json中文乱码问号的解决方案
    目录C# newtonsoft.json中文乱码问号C# NewtonJson使用技巧C# newtonsoft.json中文乱码问号 发送方在序列化json时这样写,比如将game...
    99+
    2022-11-13
  • 【C++】:string用法详解
    朋友们、伙计们,我们又见面了,本期来给大家解读一下有关Linux的基础知识点,如果看完之后对你有一定的启发,那么请留下你的三连,祝大家心想事成! C 语 言 专 栏:C语言:从入门到精通 数据结构专栏:数据结构 个  人  主...
    99+
    2023-10-20
    c++ string
  • C++ string.erase()用法详解
    标准库类型string表示可变长的字符序列。可以通过string类的erase()函数来对该字符序列进行删除操作。erase()函数共有3种格式,分别用来删除指定位置的字符、删除指定...
    99+
    2022-11-12
  • C++ stringstream类用法详解
    本文主要介绍 C++ 中 stringstream 类的常见用法。 1 概述 <sstream> 定义了三个类:istringstream、ostringstream 和...
    99+
    2022-11-12
  • C#DirectoryInfo类用法详解
    DirectoryInfo类是System.IO命名空间的一部分。它用于创建,删除和移动目录。它提供了执行与目录和子目录相关的操作的方法。这是一个密封的类,所以不能继承它。 Dire...
    99+
    2022-11-12
  • C#委托用法详解
    目录1、什么是委托2、委托的定义3、委托的实例化3.1 使用new关键字3.2 使用匿名方法3.3 使用Lambda表达式4、泛型委托5、C#内置泛型委托6、多播委托1、什么是委托 ...
    99+
    2022-11-13
  • C#PadLeft、PadRight用法详解
    目录1.PadLeft2.PadRight在平时开发中,总能遇到流水号的问题,类似yyyy-MM-dd-00001的情况,许多时候我们在拼接字符串的同时,需要把"00001...
    99+
    2023-02-06
    C# PadLeft PadRight
  • C++ std::bind用法详解
    一、介绍 C++11中提供了std::bind。bind()函数的意义就像它的函数名一样,是用来绑定函数调用的某些参数的。 bind的思想实际上是一种延迟计算的思想,将可调用对象保存...
    99+
    2022-11-12
  • C++ cin.get用法案例详解
    与字符串输入一样,有时候使用 cin>> 读取字符也不会按我们想要的结果行事。 例如,因为它会忽略掉所有前导白色空格,所以使用 cin>> 就不可能仅输入一个...
    99+
    2022-11-12
  • C++ template用法案例详解
    有必要记一下这种一眼看上去就很高级的用法。还是编程不够多。都没用过这个。 相信用过c++的人,即便没用过,也肯定都听说过模板类这个词。嗨不巧了,今天讲的就是模板类。 模板是c++支持...
    99+
    2022-11-12
  • C++ std::function的用法详解
    类模版std::function是一种通用、多态的函数封装。std::function的实例可以对任何可以调用的目标实体进行存储、复制、和调用操作,这些目标实体包括普通函数、Lamb...
    99+
    2022-11-12
  • C# Console.WriteLine()用法案例详解
    以前用Console.WriteLine()的时候就只会用它直接输出string字符串,但后来发现它还有其它在有些场合下会十分方便的输出方法,这篇就记录一下这些方法的使用吧。 代码格...
    99+
    2022-11-12
  • C++ ostream用法案例详解
    概述 在 C++中,ostream表示输出流,英文”output stream“的简称。在 C++中常见的输出流对象就是标准输出流cout,很少自定义ostream的对象,更多的是直...
    99+
    2022-11-12
  • C# Request.Form用法案例详解
    在CS文件中获得对应页面中的下拉框DropDownList_sitebranch值可以有以下几种方法获得: siteInfo.FZJGID = DropDownList_site...
    99+
    2022-11-12
  • C# DialogResult用法案例详解
    在程序中,经常会弹出一个对话框来让用户填写一些信息,填写完成后,当用户点击“确定”按钮后,在主窗体中进行其他的处理。比如一个简单的例子,在主窗体中有一个菜单,是“增加用户”,当点击这...
    99+
    2022-11-12
  • C# pictureBox用法案例详解
    PictureBox 控件可以显示来自位图、图标或者元文件,以及来自增强的元文件、JPEG 或 GIF 文件的图形。如果控件不足以显示整幅图象,则裁剪图象以适应控件的大小。 本文利用...
    99+
    2022-11-12
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作