一,前言

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

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

二,解決辦法

  可以重寫Newtonsoft.Json的DefaultContractResolver類。

  步驟一:繼承DefaultContractResolver

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

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

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