Как преобразовать список <Object>в Json | C# - PullRequest
1 голос
/ 28 мая 2020

У меня есть список, состоящий из объектов, каждый из которых имеет 5 данных. Мне нужно преобразовать этот список в json, но при использовании сериализации он заполняет меня пустым json.

Кто-нибудь знает, что я делаю неправильно?

foreach (DataRow dtRow in dtAlarmas.Rows)
                {
                    String Name = dtRow["Name"].ToString();
                    String ID = dtRow["ID"].ToString();
                    String AlarmText = dtRow["AlarmText"].ToString();
                    String AlarmTimeNoNula = dtRow["AlarmTimeNoNula"].ToString();
                    lstAlarmasNoTratadas.Add(new Ondoan.DatosAux.Alarmas.AlarmaNoTratadaModel(dtRow["Name"].ToString(), Convert.ToInt32(dtRow["ID"]), dtRow["Class"].ToString(), dtRow["AlarmText"].ToString(), dtRow["AlarmTimeNoNula"].ToString()));
                }

                string sParams = JsonConvert.SerializeObject(lstAlarmasNoTratadas);

Значение sParams после convert = "[{}]"

Класс Ondoan.DatosAux.Alarmas.AlarmaNoTratadaModel

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace Ondoan.DatosAux.Alarmas
{
   public class AlarmaNoTratadaModel
    {
        private string Name;
        private int ID;
        private string Class;
        private string AlarmText;
        private string AlarmaTimeNoNula;

        public AlarmaNoTratadaModel(string Name, int ID, string Class, string AlarmText, string AlarmaTimeNoNula)
       {
           // TODO: Complete member initialization
           this.Name = Name;
           this.ID = ID;
           this.Class = Class;
           this.AlarmText = AlarmText;
           this.AlarmaTimeNoNula = AlarmaTimeNoNula;
       }

        public class AlarmaNoTratadasModel
        {
            public AlarmaNoTratadasModel() { }
            public AlarmaNoTratadasModel(String Name, Nullable<System.Int32> ID, String Class, String AlarmText, String AlarmaTimeNoNula)
            {
                this.Name = Name;
                this.ID = ID;
                this.Class = Class;
                this.AlarmText = AlarmText;
                this.AlarmaTimeNoNula = AlarmaTimeNoNula.ToString();
            }

            public System.String Name { get; set; }
            public Nullable<System.Int32> ID { get; set; }
            public System.String Class { get; set; }
            public System.String AlarmText { get; set; }
            public System.String AlarmaTimeNoNula { get; set; }
        }
    }
}

1 Ответ

1 голос
/ 28 мая 2020

Проблема в том, что JsonConvert по умолчанию не сериализует частные поля. Либо сделайте их publi c свойствами, либо добавьте JsonPropertyAttribute.

[JsonProperty]
private string Name;
[JsonProperty]
private int ID;
[JsonProperty]
private string Class;
[JsonProperty]
private string AlarmText;
[JsonProperty]
private string AlarmaTimeNoNula;
...