c# webapi 设置输出的class属性

平时做项目的时候大多数时候喜欢用webapi+html静态页面开发
这样的话开发移动端会比较方便

webapi在直接输出类的时候,会序列化所有属性,
底层是通过Newtonsoft.Json来实现的
于是就可以通过给class设置标签来让webapi不序列化某个属性.

[JsonObject(MemberSerialization.OptOut)]
public class LoadModel
{
    [JsonIgnore]
    public HttpPostedFileBase file { get; set; }

    [JsonProperty]
    public string base64 { get; set; }

    [JsonProperty]
    public string type { get; set; }

    public string title { get; set; }
}

当class设置标签为[JsonObject(MemberSerialization.OptOut)]时,属性标签为[JsonIgnore]的不会被序列化

当class设置标签为[JsonObject(MemberSerialization.OptIn)]时,属性标签为[JsonProperty]的会被序列化

一般我喜欢用[JsonObject(MemberSerialization.OptOut)],因为基本上都是要输出的嘛,个别会不输出而已..

标签: none

添加新评论