本篇内容介绍了“NewtonsoftJson的使用方法”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!
json是我们在工作中经常用到的一种数据传输格式,开始过程中解析json是我们经常面对的问题。NewtonsoftJson是c#的一套json处理封装类,它可以高效,方便地帮助我们处理json。
NetonSoftJson提供了完整的使用文档,文档地址如下:Json.NET Documentation
这应该是我们最常用的俩个方法了
JsonConvert.DeserializeObject<T>(string json)//反序列化 JsonConvert.SerializeObject(object obj) //序列化
参考文章 Newtonsoft.Json高级用法
使用JsonIgnore特性标签
public class Person { public int Age { get; set; } public string Name { get; set; } [JsonIgnore] public string Sex { get; set; } }
public class Person { public int Age { get; set; } public string Name { get; set; } [JsonProperty(PropertyName = "SepcialSex")] public string Sex { get; set; } }
首先构建一个json对象,描述了一个老师的实体,里面包含老师的基本属性(名称、年龄),所管理的班级属性,所管理的班级的学生数组
{ "name": "张三", "age": "10", "classroom": { "name": "1年级1班", "desc": "描述" }, "students": [ { "age": "小名" }, { "age": "小红" } ] }
接下来我们使用Newtonsoftjson解析字符串并获取到我们需要的信息
string jsonStr = "{\"name\":\"张三\",\"age\":\"10\",\"classroom\":{\"name\":\"1年级1班\",\"desc\":\"描述\"},\"students\":[{\"name\":\"小名\"},{\"name\":\"小红\"}]}"; JObject jObject = JObject.Parse(jsonStr);
获取姓名
Console.WriteLine("name is " + jObject["name"].ToString()); Console.WriteLine("age is " + jObject.GetValue("age").ToString());
获取班级信息
Console.WriteLine("classroom name is " + jObject["classroom"]["name"]);
获取学生信息
JArray jArray = JArray.Parse(jObject["students"].ToString()); foreach (var arr in jArray) { JObject jObj = JObject.Parse(arr.ToString()); string name = jObj["name"].ToString(); Console.WriteLine("student name is " + name); }
判断key是否存在
//key 不存在 if (jObject.Property("abc") != null) { Console.WriteLine(jObject.Property("abc").Value.ToString()); } else { Console.WriteLine("当前key不存在"); }
项目开发中不管是前台还是后台都会遇到烦人的null,数据库表中字段允许空值,则代码实体类中对应的字段类型为可空类型Nullable<>,如int?,DateTime?,null值字段序列化返回的值都为null,前台对应字段赋值需要做null值判断,怎么才能全局把null替换为空。
.NET Core 处理 WebAPI JSON 返回烦人的null为空
“NewtonsoftJson的使用方法”的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识可以关注亿速云网站,小编将为大家输出更多高质量的实用文章!
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。