使用JsonProperty Attribute修改返回json
程序员文章站
2022-09-10 14:53:33
使用JsonProperty Attribute修改返回 json 值的name 本例使用JsonPropertyAttribute在序列化为JSON时更改属性的名称。 排序 在反序列化期间使用的Required,以验证是否存在所需的JSON属性 JsonIgnoreAttribute 使用Json ......
使用jsonproperty attribute修改返回 json 值的name
本例使用jsonpropertyattribute在序列化为json时更改属性的名称。
public class videogame { [jsonproperty("name")] public string name { get; set; } [jsonproperty("release_date")] public datetime releasedate { get; set; } }
videogame starcraft = new videogame { name = "starcraft", releasedate = new datetime(1998, 1, 1) }; string json = jsonconvert.serializeobject(starcraft, formatting.indented); console.writeline(json); // { // "name": "starcraft", // "release_date": "1998-01-01t00:00:00" // }
排序
public class account { public string emailaddress { get; set; } // appear last [jsonproperty(order = 1)] public bool deleted { get; set; } [jsonproperty(order = 2)] public datetime deleteddate { get; set; } public datetime createddate { get; set; } public datetime updateddate { get; set; } // appear first [jsonproperty(order = -2)] public string fullname { get; set; } } account account = new account { fullname = "aaron account", emailaddress = "aaron@example.com", deleted = true, deleteddate = new datetime(2013, 1, 25), updateddate = new datetime(2013, 1, 25), createddate = new datetime(2010, 10, 1) }; string json = jsonconvert.serializeobject(account, formatting.indented); console.writeline(json); // { // "fullname": "aaron account", // "emailaddress": "aaron@example.com", // "createddate": "2010-10-01t00:00:00", // "updateddate": "2013-01-25t00:00:00", // "deleted": true, // "deleteddate": "2013-01-25t00:00:00" // }
在反序列化期间使用的required,以验证是否存在所需的json属性
public class videogame { [jsonproperty(required = required.always)] public string name { get; set; } [jsonproperty(required = required.allownull)] public datetime? releasedate { get; set; } } string json = @"{ 'name': 'starcraft iii', 'releasedate': null }"; videogame starcraft = jsonconvert.deserializeobject<videogame>(json); console.writeline(starcraft.name); // starcraft iii console.writeline(starcraft.releasedate); // null
jsonignoreattribute
使用jsonignoreattribute从序列化中排除属性
public class account { public string fullname { get; set; } public string emailaddress { get; set; } [jsonignore] public string passwordhash { get; set; } }
详情请参考 https://www.newtonsoft.com/json/help/html/jsonpropertyname.htm
推荐阅读
-
Jquery 使用Ajax获取后台返回的Json数据后,页面处理
-
vue-cli项目如何使用vue-resource获取本地的json数据(模拟服务端返回数据)
-
使用JsonProperty Attribute修改返回json
-
详解mvc使用JsonResult返回Json数据
-
thinkphp5 + ajax 使用formdata提交数据(包括文件上传) 后台返回json完整实例
-
jquery序列化form表单使用ajax提交后处理返回的json数据
-
使用SpringMVC返回json字符串的实例讲解
-
使用getJSON()异步请求服务器返回json格式数据的实现
-
laravel框架使用FormRequest进行表单验证,验证异常返回JSON操作示例
-
IE下使用ajax返回JSON数据提示下载的有关问题