在json中删除键值对内的键值中的0值

时间:2016-12-15 11:41:37

标签: c# .net

我返回的json格式返回

var JsonObj = {
 "Date": "2016-12-15T08:55:53.77Z",
 "Location": "UK"
 "rates": {
   "ABC": 1.6403,
   "DEF": 1.6029,
   "GHI": 0
 }
}

如何从json中删除GHI,因为我不想在c#

中返回零值

2 个答案:

答案 0 :(得分:1)

假设你有这两个类:

public class Rates
{
    public double ABC { get; set; }
    public double DEF { get; set; }
    public int GHI { get; set; }
    public bool ShouldSerializeGHI()
    {
        if (this.GHI == 0)
            return false;
        return true;
    }
}

public class RootObject
{
    public string Date { get; set; }
    public string Location { get; set; }
    public Rates rates { get; set; }
}

您可以将对象序列化为JSON字符串,该字符串忽略值为零的费率:

var test = JsonConvert.DeserializeObject<RootObject>(json);
var newJson = JsonConvert.SerializeObject(test);

答案 1 :(得分:0)

在将数据转换为JSON之前,您可以删除零值并发送JSON。 或者您可以检查前端(此JSON数据的发送位置)密钥是否包含零值。