Web API возвращает пустой массив json - PullRequest
0 голосов
/ 10 ноября 2019

Я проследил через мой метод (ниже) во время выполнения. Ниже кода я включил снимок экрана с отладочной проверкой списка портфелей непосредственно перед оператором возврата. Я расширил пару записей списка. Как видите, каждый объект Portfolio содержит достоверные данные - числовой идентификатор и имя строки.

Тем не менее, вот что возвращается к браузеру Chrome или почтальону, без разницы.

[{}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {},{}, {}, {}, {}, {}]

Что происходит со всеми данными? Спасибо за вашу помощь!

    // GET: api/Portfolio
    [HttpGet]
    public List<Portfolio> Get()
    {
        List<Portfolio> Portfolios = new List<Portfolio>();

        using (SqlConnection cn = new SqlConnection(conn))
        {
            SqlCommand cmd = cn.CreateCommand();
            cmd.CommandText = sqlSelectPortfolios;
            cn.Open();
            SqlDataReader rdr = cmd.ExecuteReader();
            Portfolio pf;

            while (rdr.Read())
            {
                pf = new Portfolio
                {
                    id = (int)rdr["PortfolioId"],
                    name = (string)rdr["PortfolioName"]
                };

                Portfolios.Add(pf);
            }
        }

        return Portfolios;
    }

Отладка:

Debug Screenshot

1 Ответ

1 голос
/ 10 ноября 2019

id и name должны быть публичными и свойствами. По состоянию на 3.0 System.Text.Json.JsonSerializer поля не сериализуются.

public class Portfolio 
{
public int id {get; set;}
public string name {get; set;}
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...