[英]Deserialize xml list of objects
<ns2:dni>
<ns2:tipoDocumento>
<ns2:pais>
<ns2:codigo>COL</ns2:codigo>
<ns2:nombre>Colombia</ns2:nombre>
</ns2:pais>
<ns2:codigo>CC</ns2:codigo>
</ns2:tipoDocumento>
<ns2:numero>1144040396</ns2:numero>
<ns2:principal>true</ns2:principal>
<ns2:campoExtension>
<ns2:clave>CIUDAD_DCTO</ns2:clave>
<ns2:valor>76001</ns2:valor>
</ns2:campoExtension>
<ns2:campoExtension>
<ns2:clave>DEPARTAMENTO_DCTO</ns2:clave>
<ns2:valor>76</ns2:valor>
</ns2:campoExtension>
<ns2:campoExtension>
<ns2:clave>PAIS_DCTO</ns2:clave>
<ns2:valor>COL</ns2:valor>
</ns2:campoExtension>
<ns2:campoExtension>
<ns2:clave>LUGAR_EXPEDICION</ns2:clave>
<ns2:valor>CALI</ns2:valor>
</ns2:campoExtension>
</ns2:dni>
所以我在反序列化這個 xml 文檔時遇到問題,到目前為止,我已經成功地反序列化“tipoDocumento”、“numero”和“principal”,問題是當它到達“campoExtension”對象時,你可能會看到它們不是只為他們封裝在 object 中,如果我嘗試在 model 中創建一個列表,它在反序列化后保持為空,這就是我得到的:
"dni": {
"tipoDocumento": {
"pais": {
"codigo": "COL",
"nombre": "Colombia"
},
"codigo": "CC"
},
"numero": "1144040396",
"principal": true,
"campoExtension": []
}
是的,它是 json 因為我把它變成了 c# object 所以我可以在之后用 newstonsoft 序列化。 請幫忙。
這是我的 Dni Class:
public class Dni
{
public TipoDocumento tipoDocumento;
public string numero;
public bool principal;
public CampoExtension[] campoExtension;
}
所以我發現我所做的解決方案是將我的 dni class 更新為以下內容:
[XmlRoot("dni")]
public class Dni
{
public TipoDocumento tipoDocumento;
public string numero;
public bool principal;
[XmlElement("campoExtension")]
public List<CampoExtension> campoExtension;
}
現在我的 json 看起來像這樣:
"dni": {
"tipoDocumento": {
"pais": {
"codigo": "COL",
"nombre": "Colombia"
},
"codigo": "CC"
},
"numero": "1144040396",
"principal": true,
"campoExtension": [
{
"clave": "CIUDAD_DCTO",
"valor": "76001"
},
{
"clave": "DEPARTAMENTO_DCTO",
"valor": "76"
},
{
"clave": "PAIS_DCTO",
"valor": "COL"
},
{
"clave": "LUGAR_EXPEDICION",
"valor": "CALI"
}
]
},
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.