2017-06-01 40 views
1

我正在使用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": [] 
     } 
    } 
} 

回答

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; } 
} 
+0

另一種選擇在轉換之前檢查null嗎? –

+0

換句話說,如果你不希望它將該屬性序列化爲'null',不要讓該屬性爲'null'? ;) –

+0

@MikeMcCaughan嗯,這是一種看待它的方式!當然,你可以建立一個自定義的序列化程序,但這似乎是很少的回報。 :) – DavidG

相關問題