我在使用json newtonsoft进行json反序列化时遇到问题。调用API时,他无法反序列化所有对象参数。 以下是我的所有代码。 正如你所看到的那样,蜜蜂正确地响应了所有参数,当反序列化失去一个参数时就是这样。
newtonsoft json decode:
var response = await request.GetResponseAsync();
var stream = response.GetResponseStream();
StreamReader reader = new StreamReader(stream);
var xml = reader.ReadToEnd();
String indexof = xml.Substring(76, xml.Length - 85);
USR_User_ReturnList = JsonConvert.DeserializeObject<List<OBJ_User>>(indexof);
对象类:
public class OBJ_User
{
public int DLR_Id { get; set; }
public string DLR_Username { get; set; }
public string DLR_Password_Hash { get; set; }
public object DLR_Nome { get; set; }
public string DLR_Cognome { get; set; }
public int DLR_Tipo { get; set; }
public string DLR_Azienda { get; set; }
public object DLR_Telefono { get; set; }
public object DLR_Email { get; set; }
public int DLR_Abilitato { get; set; }
public object DLR_Time_Zone { get; set; }
public object DLR_Country { get; set; }
public string DLR_Culture { get; set; }
public object DLR_Email1 { get; set; }
public object DLR_MCC_Modello_Alias { get; set; }
public object DLR_Anagrafica { get; set; }
public object DLR_Firma { get; set; }
public bool IsFIMAP { get; set; }
public bool IsSTANDARD { get; set; }
public bool IsDealerOrFimap { get; set; }
public object DLR_Tipo_Esteso { get; set; }
public object DLR_Abilitato_Esteso { get; set; }
}
来自StreamReader的json索引,来自代码:
[{"DLR_Id":15,"DLR_Username":"dealer02","DLR_Password_Hash":"P4ssw0rd2","DLR_Nome":null,"DLR_Cognome":"Rossi2","DLR_Tipo":0,"DLR_Azienda":"AziendaRossi2","DLR_Telefono":null,"DLR_Email":null,"DLR_Abilitato":1,"DLR_Time_Zone":null,"DLR_Country":null,"DLR_Culture":"","DLR_Email1":null,"DLR_MCC_Modello_Alias":null,"DLR_Anagrafica":null,"DLR_Firma":null,"IsFIMAP":false,"IsSTANDARD":false,"IsDealerOrFimap":true,"DLR_Tipo_Esteso":null,"DLR_Abilitato_Esteso":null}]
来自邮递员的索引(正确回复),来自api:
[{"DLR_Id":15,"DLR_Username":"dealer02","DLR_Password_Hash":"P4ssw0rd2","DLR_Nome":null,"DLR_Cognome":"Rossi2","DLR_Tipo":0,"DLR_Azienda":"AziendaRossi2","DLR_Telefono":null,"DLR_Email":null,"DLR_Abilitato":1,"DLR_Time_Zone":null,"DLR_Country":null,"DLR_Culture":"","DLR_Email1":null,"DLR_MCC_Modello_Alias":null,"DLR_Anagrafica":null,"DLR_Firma":null,"IsFIMAP":false,"IsSTANDARD":false,"IsDealerOrFimap":true,"DLR_Tipo_Esteso":null,"DLR_Abilitato_Esteso":null}]
丢失此参数: IsDealerOrFimap
我已经用http://json.parser.online.fr/测试了json并且有效,转换是正确的,但是从代码中我丢失了一个IsDealerOrFimap参数。
列表是正确的riempieta我,但列表中的所有项目都没有IsDealerOrFimap参数,丢失它...为什么?
不幸的是,它除了一个( IsDealerOfFimap )之外还包含了所有参数,并且无法理解为什么......有没有人有任何解决方案?
溶液 我尝试格式Android设备,现在工作正常。谜!
答案 0 :(得分:1)
如果JSON对象包含无法映射到目标类中的属性的字段,则会以静默方式忽略这些字段。
您将自己的回复反序列化为(Fimap.Models.DLR_User
)的课程没有IsDealerOrFimap
属性,即您要序列化的课程(OBJ_User
)