首页 > 解决方案 > 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.netjson

解决方案


我确定在 C# ASP.NET API 中您不需要序列化/反序列化对象,因为默认情况下它们将作为 json 返回,图片

[HttpGet]
public object Get()
{
    return new { number = 1, word = "hi" };
}

在客户端,他们会得到一个描述该对象的 json,您不需要序列化。json会是这样的:

{"number":1,"word":"hi"}

推荐阅读