
C#中使用Newtonsoft.Json(Json.NET)的创建Json文件和解析
为某些字段加上 在处理文件操作时,确保路径存在,文件权限足够。 如果需要优化序列化性能,可以考虑Newtonsoft.Json的高效配置。
发布日期:2021-05-10 09:24:51
浏览次数:20
分类:精选文章
本文共 2033 字,大约阅读时间需要 6 分钟。
一、添加引用
在C#项目中,要使用Newtonsoft.Json库,需要先引入相应的命名空间: using Newtonsoft.Json;
二、调用代码
1. 获取并序列化图书列表
调用GetBookList方法获取图书列表,将其序列化为Json格式:
var bookList = GetBookList();string bookListJson = JsonConvert.SerializeObject(bookList);
2. 保存Json到本地文件
将序列化后的Json字符串写入本地文件中:
using (FileStream fs = new FileStream(@"e:\booklist.json", FileMode.CreateNew, FileAccess.Write)) { using (StreamWriter sw = new StreamWriter(fs, Encoding.UTF8)) { sw.WriteLine(bookListJson); }}
3. 读取并解析Json文件
从本地文件中读取Json内容并反序列化为图书列表:
string jsonData = GetJsonFile(@"e:\booklist.json");var books = JsonConvert.DeserializeObject
>(jsonData);foreach (var book in books) { Console.WriteLine("图书ID=" + book.BookId); Console.WriteLine("图书标题=" + book.Title); Console.WriteLine("图书类别=" + book.Category); Console.WriteLine("图书作者=" + book.Author); Console.WriteLine("出版日期=" + book.PublishDate); Console.WriteLine("销售价格=" + book.Price);}
三、其他代码
1. 图书信息实体类
public class BookInfo { public int BookId { get; set; } public string Title { get; set; } public string Category { get; set; } public string Author { get; set; } public DateTime PublishDate { get; set; } [Newtonsoft.Json.JsonIgnore] public double Price { get; set; }}
2. 获取图书列表
public ListGetBookList() { return new List { new BookInfo { BookId = 1, Title = "Harry Potter", Category = "CHILDREN", Author = "J K. Rowling", PublishDate = new DateTime(2005, 8, 15), Price = 29.99 }, new BookInfo { BookId = 2, Title = "Learning XML", Category = "WEB", Author = "Erik T. Ray", PublishDate = new DateTime(2003, 10, 18), Price = 39.95 } };}
四、注意事项
Newtonsoft.Json.JsonIgnore
特性,防止序列化时间字段或不需要的信息。通过以上步骤,可以实现图书数据的Json序列化和反序列化,以及本地文件的读写操作。这套解决方案适用于需要持久化存储和跨平台数据传输的场景。
发表评论
最新留言
路过,博主的博客真漂亮。。
[***.116.15.85]2025年04月17日 21时13分18秒
关于作者

喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
计算机网络基础:用户和组管理
2025-03-28
计算机网络基础:简单渗透
2023-01-23
计算机网络模型-TCP/IP协议簇
2023-01-23
基于Arduino的ESP32-S3 + OLED(4pin)的文字取模
2023-01-23
基于Arduino的ESP32-S3 +光敏传感器(4pin)
2023-01-23
基于Arduino的ESP32-S3 + 1.3寸OLED(4pin)
2023-01-23
基于Arduino的ESP32-S3 + HCSR04(4pin)超声波传感器
2023-01-23
基于Arduino的ESP32-S3 +DS18B20(3pin)
2023-01-23
基于任意单片机的继电器模块应用全解析
2023-01-23
基于Arduino的ESP32-S3 + 水浊度传感器
2023-01-23
Git 常用命令清单(整理且详细)
2023-01-23
Servlet 简介
2023-01-23
乒乓球问题
2023-01-23
线程、多线程和线程池面试专题
2023-01-23
java定时器,留着用
2023-01-23
多线程,高并发
2023-01-23