早上好
我有两个结构:
struct SingoloParametroFiltro
{
public Variabile variabile { get; set; }
public string operatore { get; set; }
public bool non { get; set; }
public object valore { get; set; }
public static SingoloParametroFiltro CreaSingoloParametroFiltro(int idVariabile, string Operatore, bool Non, object Valore)
{
SingoloParametroFiltro s = new SingoloParametroFiltro();
s.variabile = Variabile.CreaVariabileDaId(idVariabile);
s.operatore = Operatore;
s.non = Non;
s.valore = Valore;
return s;
}
}
struct Filtro
{
public List<SingoloParametroFiltro> parametroFiltro { get; set; }
public string nomeFiltro { get; set; }
public static Filtro CreaFiltro(List<SingoloParametroFiltro> _parFiltro, string _nome)
{
Filtro f = new Filtro();
f.parametroFiltro = _parFiltro;
f.nomeFiltro = _nome;
return f;
}
}
以及变量的结构:
struct Variabile
{
public int id { get; private set; }
public string NomeColonna { get; private set; }
public string TipoDato { get; private set; }
public object Val { get; private set; }
public object Default { get; private set; }
public int ColonnaAccoppiamento { get; private set; }
public bool Visibile { get; private set; }
public bool ChiaveAlbero { get; private set; }
public int Importanza { get; private set; }
public bool ChiaveImport { get; private set; }
}
现在....我序列化List<SingoloParametroFiltro>
并将其保存在数据库中。 json 字符串似乎没问题,一切正常。
当我尝试将 json 字符串从数据库反序列化为 List<SingoloParametroFiltro>
除了 SingoloParametroFiltro 中的 Variabile 之外,一切都很好。
SingoloParametroFiltro 中的结构变量将所有变量设置为 null 或 0.....
要序列化的代码:
JavaScriptSerializer jsSer = new JavaScriptSerializer();
string json = jsSer.Serialize(parametri);
其中参数是 List<SingoloParametroFiltro>
反序列化代码:
JavaScriptSerializer js = new JavaScriptSerializer();
return js.Deserialize<List<SingoloParametroFiltro>>(json);
谁能帮帮我?
最佳答案
这是因为 Variabile
结构体的所有 setter 都是 private
。
...
public int id { get; private set; }
public string NomeColonna { get; private set; }
public string TipoDato { get; private set; }
...
因此反序列化器无法为字段分配正确的值。 您可以尝试将其公开:
...
public int id { get; set; }
...
关于c# - JsonSerializer c# 在尝试反序列化对象时返回空结构,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34153027/