簡體   English   中英

返回json結果並將null轉換為空字符串

[英]Returns json result and convert null to empty string

我有一個返回json結果的動作,但有些屬性為null,我想將它們轉換為空字符串。 我聽說我可以使用DefaultValue("") ,但它仍然返回null而不是空字符串。

行動是:

[HttpGet]
public ActionResult GetResults(string date)
{
    var data= GetData();  // returns List<Foo>
    var json = Json(data, JsonRequestBehavior.AllowGet);
    return json;
}

Foo類是:

public class Foo
{
    public string Bar1;

    [DefaultValue("")]
    public int? Bar2;
}

你不能將一個nullable int設置為默認值""

嘗試

[DefaultValue(0)]
public int? Bar2;

像@Dave A注意到你不能將字符串值賦給int值。

但是有一件事我想警告它,你有沒有正確設置DefaultValueHandling屬性? 在此處查看: 使用MVC4 Web API刪除JSON中的默認值

除此之外,我建議您使用表示此Bar2 int屬性的字符串屬性,並“忽略”它以進行序列化,例如:

[JsonIgnore]
[DefaultValue(0)]
public int? Bar2Int;

public string Bar2
{
   return { Bar2Int.HasValue ? this.Bar2Int.Value.ToString() : String.Empty; }
}

使用此方法更好,您不需要任何默認值屬性。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM