当前位置: 首页 > news >正文

C# Newtonsoft.Json 使用指南

Newtonsoft.Json (也称为 Json.NET) 是一种适用于 .NET 的常用高性能 JSON 框架,用于处理 JSON 数据。它提供了高性能的 JSON 序列化和反序列化功能。

安装

通过 NuGet 安装

基本用法

1. 序列化对象为 JSON 字符串

using Newtonsoft.Json;var product = new Product
{Name = "Apple",Expiry = new DateTime(2008, 12, 28),Sizes = new[] { "Small", "Medium", "Large" }
};string json = JsonConvert.SerializeObject(product);
// 输出:
// {"Name":"Apple","Expiry":"2008-12-28T00:00:00","Sizes":["Small","Medium","Large"]}//处理object类型的数据json序列化
object[,] config = worksheet.Cells[1, 1, maxHang, maxLie].Value as object[,];
string customJson = JsonConvert.SerializeObject(config);
var bytes = Encoding.UTF8.GetBytes(customJson);
var path = @"D:\jsonFile.bytes";
File.WriteAllBytes(path, bytes);

2. 反序列化 JSON 字符串为对象

string json = @"{'Name': 'Apple','Expiry': '2008-12-28T00:00:00','Sizes': ['Small', 'Medium', 'Large']
}";Product product = JsonConvert.DeserializeObject<Product>(json);Console.WriteLine(product.Name); // 输出: Apple

3. 格式化 JSON 输出

对字符串进行缩进换行,更易于阅读

string json = JsonConvert.SerializeObject(product, Formatting.Indented);
// 输出格式化的 JSON:
// {
//   "Name": "Apple",
//   "Expiry": "2008-12-28T00:00:00",
//   "Sizes": [
//     "Small",
//     "Medium",
//     "Large"
//   ]
// }

4、大型 JSON 处理的流式处理

对于大型 JSON 处理,可以使用 JsonTextReader 和 JsonTextWriter 进行流式处理:

// 读取
using (StreamReader file = File.OpenText("largefile.json"))
using (JsonTextReader reader = new JsonTextReader(file))
{JObject o = (JObject)JToken.ReadFrom(reader);// 处理数据
}// 写入
using (StreamWriter file = File.CreateText("largefile.json"))
using (JsonTextWriter writer = new JsonTextWriter(file))
{JsonSerializer serializer = new JsonSerializer();serializer.Serialize(writer, largeObject);
}

相关文章:

  • 最大化效率和性能:AKS 中节点池的强大功能
  • Kubernetes排错(十一):lsof命令实战场景
  • 弹性Reasoning!通过RL训练控制推理预算,提升模型的推理能力和效率!
  • eNsp的使用
  • 招行数字金融挑战赛数据赛道赛题一
  • Appium-OppoA92S-真机记坑
  • MySQL 索引设计宝典:原理、原则与实战案例深度解析
  • 进程检测与控制
  • Spring框架(2)---AOP
  • STC-ISP烧录过程中显示“正在检测目标单片机...”
  • 互联网大厂Java求职面试实战:Spring Boot到微服务的技术问答解析
  • 视频编解码学习10之成像技术原理
  • ActiveMQ 生产环境问题排查与调优指南(二)
  • Java面试常见技术问题解析
  • 自然语言处理与BI融合实战:ChatBI动态语义解析技术架构剖析
  • 计算机网络——以太网交换机
  • xilinx QDMA开发调试记录
  • 云计算中的虚拟化:成本节省、可扩展性与灾难恢复的完美结合
  • 【android bluetooth 框架分析 02】【Module详解 5】【HciLayer 模块介绍】
  • 【工作记录】crmeb后端项目打开、运行
  • 福建宁德市长张永宁拟任设区市党委正职,曾获评全国优秀县委书记
  • 从这些电影与影像,看到包容开放的上海
  • 影子调查丨三名“淘金客”殒命雪峰山:千余废弃金矿洞的监管难题
  • 中医的千年传承:网络科学描绘其演化之路|PNAS速递
  • 商务部新闻发言人就中美日内瓦经贸会谈联合声明发表谈话
  • 全球医药股普跌,A股创新药板块下挫