c# - Asp.Net 返回空 JSON 而不是 Message
问题描述
我有这个代码,从数据库中获取消息:
[HttpGet]
public string RecieveMessagesFromDatabase(int ChatID)
{
// Before - Query formatting and execution
while(reader.Read())
{
for (int i = 0; i < UserList.Count; i++)
{
if (ChatID == 1)
{
TempMessageStorage.Add(
new Messages(reader["Message"].ToString(), Convert.ToInt32(reader["SenderID"]),
reader["Date"].ToString(), ReceiverID, groupid));
} // Public Chat
else if (ChatID == 2)
{
if (i == Convert.ToInt32(reader["SenderID"]) || i == Convert.ToInt32(reader["ReveiverID"]))
{
TempMessageStorage.Add(
new Messages(reader["Message"].ToString(), Convert.ToInt32(reader["SenderID"]),
reader["Date"].ToString(), ReceiverID, groupid));
}
} // Private Chat
else if(ChatID == 3)
{
if (i == Convert.ToInt32(reader["SenderID"]) || i == Convert.ToInt32(reader["ReveiverID"]))
{
TempMessageStorage.Add(
new Messages(reader["Message"].ToString(), Convert.ToInt32(reader["SenderID"]),
reader["Date"].ToString(), ReceiverID, groupid));
}
} // Group Chat
}
}
return JsonSerializer.Serialize(TempMessageStorage);
}
catch(Exception ex)
{
Content(ex.Message);
}
finally
{
reader.Close();
_Connection.Connection.Close();
}
return null;
}
消息中TempMessageStorage
存在,并且它不是空的。但 JSON 返回空结果。但并不是真的空。它似乎得到了记录的数量,但它们是空的。这就是它的样子 - https://prnt.sc/u3d8gc
消息类包含
解决方案
我确定在 C# ASP.NET API 中您不需要序列化/反序列化对象,因为默认情况下它们将作为 json 返回,图片
[HttpGet]
public object Get()
{
return new { number = 1, word = "hi" };
}
在客户端,他们会得到一个描述该对象的 json,您不需要序列化。json会是这样的:
{"number":1,"word":"hi"}
推荐阅读
- c# - Microsoft Graph API - 批准审核请求
- mongodb - 需要帮助查询嵌套字段的不同组合
- glsl - 错误:“子组操作”:需要 SPIR-V 1.3
- python - 捕获贝宝订单时如何呈现模板?
- php - Symfony 4.4 Easyadmin:设置权限以仅访问我拥有的实体
- sql - SQL Server 存储过程未返回正确的输出值
- c# - 在 VB6 中使用 bang(!) 运算符在 C# dll 中返回一个对象
- javascript - 有没有办法压缩我的 Javascript 代码以使其更简洁?
- javascript - 当回调丢失时,`await promisify(setTimeout)(ms)` 是如何工作的?
- nginx - nginx 模块:编译但无法链接新库