【问题标题】:JsonResult returning empty JsonJsonResult 返回空的 Json
【发布时间】:2016-01-15 16:18:46
【问题描述】:

我的控制器中有以下 JsonResult:

public JsonResult SearchRxNormDrugs(string term)
{
    var matches = rxnConsoService.SearchRxNormDrugs(term);

    return Json(matches, JsonRequestBehavior.AllowGet);
}

在调试项目时,我可以看到matches 有 300 多个结果。所有的比赛也都有内容。但是,当我在 url 中导航到此操作时,我得到的结果如下:

(点击图片查看原图)

型号:

public class RxNConso
{
    [KeyProperty(Identity = true)]
    string RXCUI { get; set; }
    string LAT { get; set; }
    string TS { get; set; }
    string LUI { get; set; }
    string STT { get; set; }
    string SUI { get; set; }
    string ISPREF { get; set; }
    string RXAUI { get; set; }
    string SAUI { get; set; }
    string SCUI { get; set; }
    string SDUI { get; set; }
    string SAB { get; set; }
    string TTY { get; set; }
    string CODE { get; set; }
    string STR { get; set; }
    string SRL { get; set; }
    string SUPPRESS { get; set; }
    string CVF { get; set; }
}

matchesIEnumerableRxNConso

IEnumerable<RxNConso> matches

知道是什么原因造成的吗?

【问题讨论】:

  • 看起来你的 JSON 结果也有“300+”的结果(我没有算他们......) - 即它与matches 相同。您需要检查一些匹配的内容是什么,而不仅仅是有 300 个。例如试试这个:var m = matches.First();return Json(m, JsonRequestBehavior.AllowGet);(取决于匹配的类型)
  • @freedomn-m 所有结果/匹配都包含内容,我应该将其添加到原始帖子中。我现在就这样做。不过这让我很困惑。
  • 我们能看到您尝试序列化的类吗?
  • 您的属性/字段是私有的吗?
  • @Rob Silly,这就是我的问题。我不知道为什么我没有早点抓到。如果你能以这个作为答案,我很乐意接受。

标签: c# .net json asp.net-mvc


【解决方案1】:

大多数序列化库只关心可公开访问的属性/字段。您的类可能只有私有字段/属性,这可以解释为什么您可以在调试器中看到这些值,但在序列化时得到一个空结果。

【讨论】:

  • 在我的帖子中添加了更多信息后,我意识到我在“模型”中的属性没有公开。这解决了问题,谢谢!
猜你喜欢
  • 1970-01-01
  • 2023-03-18
  • 1970-01-01
  • 1970-01-01
  • 2011-08-19
  • 2018-02-13
  • 2019-01-10
  • 1970-01-01
  • 2014-05-17
相关资源
最近更新 更多