【.Net Core】通过Newtonsoft.Json将list转换为json字符串或是将json字符串转换为list

it2024-09-29  38

前言

在很多业务场景中会遇到将json字符串转换为list或是将list转换为json字符串,下面通过一个例子来描述一下, let‘'s go!

环境及组件 

环境:.net core 

组件:Newtonsoft.Json

组件安装

通过vs2019打开.net core项目,右击解决方案,找到“管理解决方案的Nuget程序包”

在搜索框中输入Newtonsoft.Json,找到第一个并点击安装

安装后会在依赖项中看到

将json字符串转换为list

以下代码是从一个json文件中将json数据读出来,然后将json字符串转换为list

1、json文件中的数据

[ { "Title": "新闻标题", "PublishDate": null, "PageUrl": "新闻页面url地址", "Content": null, "Author": null } ]

2、实例代码

主要代码

//反序列化Json字符串内容为对象 List<Article> jsondata = JsonConvert.DeserializeObject<List<Article>>(jsonData);

下面为全部代码

//将Json转换回列表 var directorypath = Directory.GetCurrentDirectory(); string strFileName = directorypath + "\\NewsData.json"; string jsonData = GetJsonFile(strFileName); Console.WriteLine(jsonData); //将json字符串转换为list List<Article> jsondata = JsonConvert.DeserializeObject<List<Article>>(jsonData); //读取json文件中的数据并返回json字符串 //获取到本地的Json文件并且解析返回对应的json字符串 public static string GetJsonFile(string filepath) { string json = string.Empty; using (FileStream fs = new FileStream(filepath, FileMode.OpenOrCreate, System.IO.FileAccess.ReadWrite, FileShare.ReadWrite)) { Encoding.RegisterProvider(CodePagesEncodingProvider.Instance); using (StreamReader sr = new StreamReader(fs, Encoding.GetEncoding("GB2312"))) { json = sr.ReadToEnd().ToString(); } } return json; } //Article类 public class Article { /// <summary> /// 标题 /// </summary> public string Title { get; set; } /// <summary> /// 日期 /// </summary> public string PublishDate { get; set; } /// <summary> /// 文章链接 /// </summary> public string PageUrl { get; set; } /// <summary> ///明细 /// </summary> public string Content { get; set; } /// <summary> ///作者 /// </summary> public string Author { get; set; } }

将list转换为json字符串

以下代码是在.net core中调用web api,并且需要把获取到的list数据转换为json字符串传给web api

有关在.net core中调用web api,可参考在.net core中调用web api并将json字符串传递给post方法

主要代码:

//articles为list集合 string ListJson = JsonConvert.SerializeObject(articles);

完整代码可参考【.Net Core】在.net core中调用web api并将json字符串传递给post方法

 

 

 

最新回复(0)