我正在使用一个返回此JSON的服务,当模型中的映射仅将我带到第一个对象,而sms
字段与其他对象为空时。
这是JSON:
{
"cliente": "999999",
"lote_id": "99999999999999",
"fecha_recepcion": "2019-04-29 12:31:35",
"resultado": 0,
"resultado_t": null,
"sms_procesados": 2,
"referecia": "Referencia Prueba",
"ip": "999.999.99.9",
"sms": {
"1": {
"id": "9999999",
"numero": "999999999",
"sms": "tests",
"fecha_envio": "2019-04-29 12:31:35",
"ind_area_nom": "cell",
"precio_sms": "9.00000",
"resultado_t": "",
"resultado": "0"
},
"2": {
"id": "8888888",
"numero": "9999998888",
"sms": "test",
"fecha_envio": "2019-04-29 12:31:35",
"ind_area_nom": "Celular",
"precio_sms": "9.00000",
"resultado_t": "",
"resultado": "0"
}
}
}
这是我的模型:
public class ResultadoSms
{
public string cliente { get; set; }
public Int64 lote_id { get; set; }
public string fecha_recepcion { get; set; }
public Int64 resultado { get; set; }
public object resultado_t { get; set; }
public Int64 sms_procesados { get; set; }
public string referecia { get; set; }
public string ip { get; set; }
public Sms sms { get; set; }
}
public class Sms
{
public CuerpoSms CuerpoSms { get; set; }
}
public class CuerpoSms
{
public string id { get; set; }
public string numero { get; set; }
public string sms { get; set; }
public string fecha_envio { get; set; }
public string ind_area_nom { get; set; }
public string precio_sms { get; set; }
public string resultado_t { get; set; }
public string resultado { get; set; }
}
我试图将sms
字段转换为列表,但它仍然为空。我不明白问题是什么,或者不知道如何通过另一种更简单的方法反序列化对象。
答案 0 :(得分:2)
您的模型不考虑JSON中1
对象内的2
,sms
等键。您需要使用Dictionary<string, CuerpoSms>
来处理。
更改此行:
public Sms sms { get; set; }
对此:
public Dictionary<string, CuerpoSms> sms { get; set; }
答案 1 :(得分:1)
返回的JSON中的sms
是具有 2个属性的对象,两者的结构与您的CuerpoSms
相同。
要让它们在您的C#代码中自动序列化,您需要:
public class Sms
{
[JsonProperty("1")]
public CuerpoSms CuerpoSms1 { get; set; }
[JsonProperty("2")]
public CuerpoSms CuerpoSms2 { get; set; }
}