在很多业务场景中会遇到将json字符串转换为list或是将list转换为json字符串,下面通过一个例子来描述一下, let‘'s go!
环境:.net core
组件:Newtonsoft.Json
通过vs2019打开.net core项目,右击解决方案,找到“管理解决方案的Nuget程序包”
在搜索框中输入Newtonsoft.Json,找到第一个并点击安装
安装后会在依赖项中看到
以下代码是从一个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; } }以下代码是在.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方法
