全网整合营销服务商

电脑端+手机端+微信端=数据同步管理

免费咨询热线:400-708-3566

C#怎么解析JSON字符串 C#使用Newtonsoft.Json库教程

C#中解析JSON最常用的是Newtonsoft.Json,它比System.Text.Json更灵活,支持复杂嵌套、自定义序列化等;需通过NuGet安装并引用using Newtonsoft.Json;,可用JObject动态解析或DeserializeObject反序列化为强类型对象,注意大小写匹配、空值处理和日期格式。

在C#中解析JSON字符串,最常用、最成熟的方式是使用 Newtonsoft.Json(也叫 Json.NET)。它支持复杂嵌套、日期格式、自定义序列化等,比 .NET 原生的 System.Text.Json 更灵活(尤其在老项目或需要精细控制时)。

安装 Newtonsoft.Json

通过 NuGet 安装(推荐):

  • Visual Studio:右键项目 → “管理 NuGet 包” → 搜索 Newtonsoft.Json → 安装
  • 命令行(Package Manager Console):Install-Package Newtonsoft.Json
  • .NET CLI:dotnet add package Newtonsoft.Json

安装完成后,在代码顶部加引用:

using Newtonsoft.Json;

快速解析简单 JSON 字符串

比如有这段 JSON:

string json = @"{""name"":""张三"",""age"":25,""isStudent"":true}";

你可以直接反序列化为匿名对象或具体类:

  • JObject 动态解析(适合结构不确定或临时读取):
    JObject obj = JObject.Parse(json);
    string name = (string)obj["name"]; // 张三
    int age = (int)obj["age"]; // 25
  • 反序列化为强类型对象(推荐用于已知结构):
    var person = JsonConvert.DeserializeObject(json);
    Console.WriteLine(person.Name); // 张三

    需要先定义类:
    public class Person { public string Name { get; set; }
    public int Age { get; set; }
    public bool IsStudent { get; set; } }

处理数组和嵌套对象

JSON 含数组或子对象时,类属性对应声明即可:

string json = @"{""title"":""课程表"",""items"":[{""id"":1,""name"":""数学""},{""id"":2,""name"":""英语""}]}";

定义匹配类:

public class Schedule { public string Title { get; set; }
public List Items { get; set; } }
public class Item { public int Id { get; set; } public string Name { get; set; } }

然后解析:

var schedule = JsonConvert.DeserializeObject(json);

常见注意事项

  • JSON 属性名默认区分大小写,C# 类属性名不匹配时可用 [JsonProperty("xxx")] 标记,例如:
    [JsonProperty("user_name")] public string UserName { get; set; }
  • 空值或缺失字段:属性设为可空类型(如 int?string 默认可空),或用 NullValueHandling.Ignore 控制序列化行为
  • 日期格式:Newtonsoft 默认识别 ISO 8601(如 "2025-05-10T08:30:00"),也可自定义 DateTimeZoneHandling
  • 异常处理:务必用 try-catch 包裹 ParseDeserializeObject,避免非法 JSON 导致崩溃

基本上就这些。Newtonsoft.Json 上手快、文档全、社区支持好,中小型项目用它解析 JSON 几乎零门槛。不复杂但容易忽略细节,比如大小写、空值、日期——盯住这三点,基本不会踩坑。


# js  # json  # c#  # .net  # String  # try  # catch  # 字符串  # bool  # int  # using  # class  # 空类型  # public  # var  # console  # 对象  # visual studio  # 自定义  # 序列化  # 最常用  # 的是  # 更灵活  # 你可以  # 如有  # 设为  # 右键  # 类属 


相关文章: 如何快速重置建站主机并恢复默认配置?  广州美橙建站如何快速搭建多端合一网站?  如何通过虚拟机搭建网站?详细步骤解析  高性能网站服务器配置指南:安全稳定与高效建站核心方案  建站之星北京办公室:智能建站系统与小程序生成方案解析  微信h5制作网站有哪些,免费微信H5页面制作工具?  西安大型网站制作公司,西安招聘网站最好的是哪个?  微课制作网站有哪些,微课网怎么进?  建站主机选购指南:核心配置优化与品牌推荐方案  高防服务器:AI智能防御DDoS攻击与数据安全保障  建站主机无法访问?如何排查域名与服务器问题  湖南网站制作公司,湖南上善若水科技有限公司做什么的?  如何在万网ECS上快速搭建专属网站?  建站之星手机一键生成:多端自适应+小程序开发快速建站指南  岳西云建站教程与模板下载_一站式快速建站系统操作指南  桂林网站制作公司有哪些,桂林马拉松怎么报名?  Java解压缩zip - 解压缩多个文件或文件夹实例  如何在阿里云服务器自主搭建网站?  企业网站制作费用多少,企业网站空间一般需要多大,费用是多少?  网站规划与制作是什么,电子商务网站系统规划的内容及步骤是什么?  SAX解析器是什么,它与DOM在处理大型XML文件时有何不同?  如何高效配置香港服务器实现快速建站?  如何配置支付宝与微信支付功能?  建站主机选哪种环境更利于SEO优化?  如何在IIS中新建站点并配置端口与IP地址?  活动邀请函制作网站有哪些,活动邀请函文案?  电商网站制作公司有哪些,1688网是什么意思?  简单实现Android文件上传  网站制作大概多少钱一个,做一个平台网站大概多少钱?  如何通过虚拟主机快速搭建个人网站?  如何挑选高效建站主机与优质域名?  北京网站制作的公司有哪些,北京白云观官方网站?  ,巨量百应是干嘛的?  标准网站视频模板制作软件,现在有哪个网站的视频编辑素材最齐全的,背景音乐、音效等?  高端网站建设与定制开发一站式解决方案 中企动力  ,交易猫的商品怎么发布到网站上去?  黑客如何利用漏洞与弱口令入侵网站服务器?  青浦网站制作公司有哪些,苹果官网发货地是哪里?  小自动建站系统:AI智能生成+拖拽模板,多端适配一键搭建  建站之星安装后如何配置SEO及设计样式?  宁波自助建站系统如何快速打造专业企业网站?  如何用腾讯建站主机快速创建免费网站?  新网站制作渠道有哪些,跪求一个无线渠道比较强的小说网站,我要发表小说?  C++中引用和指针有什么区别?(代码说明)  如何在Windows环境下新建FTP站点并设置权限?  如何自己制作一个网站链接,如何制作一个企业网站,建设网站的基本步骤有哪些?  惠州网站建设制作推广,惠州市华视达文化传媒有限公司怎么样?  赚钱网站制作软件,建一个网站怎样才能赚钱?是如何盈利的?  兔展官网 在线制作,怎样制作微信请帖?  专业企业网站设计制作公司,如何理解商贸企业的统一配送和分销网络建设? 

您的项目需求

*请认真填写需求信息,我们会在24小时内与您取得联系。