查找Json返回字符串的空记录

时间:2017-10-12 11:04:12

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

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

API如何运作?

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

有什么问题?

对于我发送的API,我总是得到YES回复。

以下是我的代码

 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()>0也总是给我true

任何帮助都将受到高度赞赏。

1 个答案:

答案 0 :(得分: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();

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