Json.Encode对象,数组字符串为“[]”而不是null

时间:2017-06-01 15:42:53

标签: c# asp.net json

我正在使用de Json.Encode(object)函数将我的对象转换为json。

问题是我有一个字符串数组属性(headers),我想将其转换为{ 'headers': [] } 而不是{ 'headers': null },当它为空时。< / p>

我的课程:

public class BaseObject
{
    public LinkModel Links { get; set; }
}

public class LinkModel
{
    public SelfLinkModel Self { get; set; }
}

public class SelfLinkModel
{
    public string Uri { get; set; }
    public string Method { get; set; }
    public string[] Headers { get; set; }
}

编码:

string content = Json.Encode(profile);

总结一下,它转换为:

{  
    "Links":{  
        "Self":{  
            "Uri":"href",
             "Method":"GET",
             "Headers":null
        }
    }
}

我想要:

{  
    "Links":{  
        "Self":{  
            "Uri":"href",
             "Method":"GET",
             "Headers": []
        }
    }
}

1 个答案:

答案 0 :(得分:2)

一种选择是将属性初始化为空数组。在类构造函数中执行此操作:

public class SelfLinkModel
{
    public SelfLinkModel()
    {
        Headers = new string[0];
    }

    public string Uri { get; set; }
    public string Method { get; set; }
    public string[] Headers { get; set; }
}