加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

c# – 返回json结果并将null转换为空字符串

发布时间:2020-12-16 01:53:33 所属栏目:百科 来源:网络整理
导读:我有一个返回json结果的动作,但有些属性为null,我想将它们转换为空字符串.我听说我可以使用DefaultValue(“”),但它仍然返回null而不是空字符串. 行动是: [HttpGet]public ActionResult GetResults(string date){ var data= GetData(); // returns ListFoo
我有一个返回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;
}

解决方法

像@Dave A注意到你不能将字符串值赋给int值.

但是有一件事我想警告它,你有没有正确设置DefaultValueHandling属性?在这里查看:Removing Default Values in JSON with the MVC4 Web API

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

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

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

使用此方法更好,您不需要任何默认值属性.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读