一,前言

  最近做項目采用Json形式和其他客戶端交互,借助于Newtonsoft.Json 。

  由于業(yè)務(wù)場景不同,輸出的Json內(nèi)容也不同。要想忽略的屬性,可以借助Newtonsoft.Json的特性,在實體前面添加特性[JsonIgnore]即可,但有時候會根據(jù)業(yè)務(wù)需求,在不同的地方輸出同一個實體中不同的屬性,所以添加特性的方式顯然不能滿足要求。例如user表,在A場景下需要password;B場景下不需要。

二,解決辦法

  可以重寫Newtonsoft.Json的DefaultContractResolver類。

  步驟一:繼承DefaultContractResolver

  新建類繼承Newtonsoft.Json的類 DefaultContractResolver,重寫CreateProperties方法,代碼如下:

photoshop培訓(xùn),電腦培訓(xùn),電腦維修培訓(xùn),移動軟件開發(fā)培訓(xùn),網(wǎng)站設(shè)計培訓(xùn),網(wǎng)站建設(shè)培訓(xùn)

    ///     /// Json分解器    ///     public class JsonPropertyContractResolver : DefaultContractResolver
    {
        IEnumerabl