【问题标题】:Finding null records for Json return string查找 Json 返回字符串的空记录
【发布时间】:2018-03-24 07:07:34
【问题描述】:

我使用MySQL DB 创建了一个 WEB API。根据我发送的数据YESNO

API 是如何工作的?

我正在传递仪表序列号和日期时间。 API 接收它们。 +- 时间的分钟并显示该时间的所有记录。

有什么问题?

我总是收到YES 回复关于我发送 API 的任何内容。

下面是我的代码

 public class ResponseChecker
{
    public string Response { get; set; }

    public ResponseChecker(IEnumerable result)
    {

        if (result.ToString().ToList().Count()>0)
        {
            Response = "Yes";
        }
        else
        {
            Response = "No";
        }
    }
}

public MDCEntities medEntitites = new MDCEntities();
 try
        {
            var before = dt.AddMinutes(-5);
            var after = dt.AddMinutes(5);

            var result = medEntitites.tj_xhqd
                         .Where(m =>
                         m.zdjh == msn &&
                         m.sjsj >= before &&
                         m.sjsj <= after).Select(m => new { MSN = m.zdjh, DateTime = m.sjsj, Signal_Strength = m.xhqd }).Distinct();


            return Request.CreateResponse(HttpStatusCode.OK, new { data = new ResponseChecker(result)});
        }
        catch (Exception ex)
        {
            return Request.CreateErrorResponse(HttpStatusCode.NotFound, ex);
        }

我得到的响应如下所示

{
"data": {
    "Response": "YES"    }
}

我已经尝试了所有方法来检查result 中的任何空记录,因为我厌倦了== null!= null.Any() 等。但仍然无法得到我想要的结果。

另外result.ToString().ToList().Count()&gt;0 的部分总是给我true

任何帮助将不胜感激。

【问题讨论】:

    标签: json list rest asp.net-web-api2 ienumerable


    【解决方案1】:

    你有没有试过打印这个结果是什么?

    if (result.ToString().ToList().Count()>0)
    

    你可以这样做:

    var result = medEntitites.tj_xhqd
                         .Where(m =>
                         m.zdjh == msn &&
                         m.sjsj >= before &&
                         m.sjsj <= after).Select(m => new { MSN = m.zdjh, DateTime = m.sjsj, Signal_Strength = m.xhqd }).Distinct().ToList();
    

    只需通过简单的计数即可验证结果的数量。

    【讨论】:

    • result.ToString().ToList().Count()&gt;0 它总是发给我true
    • 写入 return result.ToString().ToList().Count() 并打印。然后写 result.ToString();并打印出来。您将 var 解释为字符串,然后将其解释为列表并进行计数 - 您知道这句话有什么问题吗?
    • 是的,我现在已经更正了。你是生活的品味:)
    • 很高兴它有帮助!
    猜你喜欢
    • 1970-01-01
    • 2020-07-10
    • 2010-12-22
    • 1970-01-01
    • 2015-07-31
    • 2013-09-14
    • 2016-07-21
    • 1970-01-01
    • 2018-06-29
    相关资源
    最近更新 更多