当前位置: 首页 > 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);
}
http://www.dtcms.com/a/183941.html

相关文章:

  • 最大化效率和性能: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后端项目打开、运行
  • .Net HttpClient 使用请求数据
  • Python并发编程:开启性能优化的大门(7/10)
  • Redis从基础到高阶应用:核心命令解析与延迟队列、事务消息实战设计
  • 【JavaWeb+后端常用部件】
  • LeetCode面试题 01.03 URL化
  • [Java][Leetcode middle] 80. 删除有序数组中的重复项 II
  • 【Linux网络】HTTP
  • 嵌入式硬件篇---无线通信模块
  • 游戏引擎学习第272天:显式移动转换
  • 【软件工程】基于机器学习的多缺陷定位