JSON输出需要采用正确的格式

本文关键字:格式 输出 JSON | 更新日期: 2023-09-27 18:00:36

我遇到一个问题,我的Majors对象没有正确序列化为JSON。它需要像这样,一个字符串数组:

   "academics": {
                "majors": [
           “BS”, “MS”…etc
]}

相反,它看起来像这个

    "academics": {
                "majors": [
                          {"Major":"BS"},
                          {“Major”:”MS”}
                          ]}

以下是我目前所拥有的:

  public class Student
    {
        public string StudentId { get; set; }
        public string Gender { get; set; }
        public Academics academics { get; set; }  
    }
    public class Academics
    {
        public List<Majors> majors { get; set; }        
    }
    public class Majors
    {
        public string Major { get; set; }
    }

    public List<Student> GetStudentData()
    {
        List<Student> dataStudent;
        using (IDbConnection connection = RepositoryHelper.OpenConnection())
        {
            dataStudent = connection.Query<dynamic>(
                "mystoredprocedure", 
                commandType: CommandType.StoredProcedure)
                    .GroupBy(x => x.StudentId)
                    .Select(x => new Student 
                        { 
                            StudentId = x.First().StudentId, 
                            Gender = x.First().Gender,
                            academics = (new Academics
                                {
                                    majors = x.Select(ea => new Majors
                                    {
                                        Major = ea.Major
                                    }).ToList()
                                })
                            }).ToList();      
            return dataStudent;
        }
    }

有什么建议吗?谢谢

JSON输出需要采用正确的格式

我认为这是因为您在select语句中投影到一个新的Majors对象中,而不仅仅是获取Major值本身。

majors = x.select(ea => new Majors { Major = ea.Major }).ToList()

代替

majors => x.select(ea => ea.Major)