使用Json.NewSofton c#Xamarin表单在反序列化中丢失参数

时间:2017-02-06 10:39:48

标签: c# json xamarin.forms deserialization

我在使用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 )之外还包含了所有参数,并且无法理解为什么......有没有人有任何解决方案?

enter image description here

溶液 我尝试格式Android设备,现在工作正常。谜!

1 个答案:

答案 0 :(得分:1)

如果JSON对象包含无法映射到目标类中的属性的字段,则会以静默方式忽略这些字段。

您将自己的回复反序列化为(Fimap.Models.DLR_User)的课程没有IsDealerOrFimap属性,即您要序列化的课程(OBJ_User