Json.Encode对象的数组字符串为“[]”而不是null
问题描述:
我正在使用de Json.Encode(object)
函数将我的对象转换为json。Json.Encode对象的数组字符串为“[]”而不是null
问题是我有一个字符串数组属性(headers
),我想,当它是空的将其转换为{ 'headers': [] }
,而不是{ 'headers': null }
。
我的类:
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": []
}
}
}
答
一个选项是将属性初始化为空数组。在类的构造函数中这样做:
public class SelfLinkModel
{
public SelfLinkModel()
{
Headers = new string[0];
}
public string Uri { get; set; }
public string Method { get; set; }
public string[] Headers { get; set; }
}
另一种选择在转换之前检查null吗? –
换句话说,如果你不希望它将该属性序列化为'null',不要让该属性为'null'? ;) –
@MikeMcCaughan嗯,这是一种看待它的方式!当然,你可以建立一个自定义的序列化程序,但这似乎是很少的回报。 :) – DavidG