Ho alcuni xmls generati automaticamente dove alcune parti di xml possono avere più righe e altre no. Il risultato è che se c'è una riga viene restituito un nodo json singolo e se ho più righe viene restituito un array con nodi json.JSON.Net La serializzazione Xml fraintende gli array
I XMLs possono assomigliare a questo
<List>
<Content>
<Row Index="0">
<Title>Testing</Title>
<PercentComplete>0</PercentComplete>
<DueDate/>
<StartDate/>
</Row>
</Content>
</List>
oppure con più righe
<List>
<Content>
<Row Index="0">
<Title>Update Documentation</Title>
<PercentComplete>0.5</PercentComplete>
<DueDate>2013-01-31 00:00:00</DueDate>
<StartDate>2013-01-01 00:00:00</StartDate>
</Row>
<Row Index="1">
<Title>Write jQuery example</Title>
<PercentComplete>0.05</PercentComplete>
<DueDate>2013-06-30 00:00:00</DueDate>
<StartDate>2013-01-02 00:00:00</StartDate>
</Row>
</Content>
</List>
durante la serializzazione questi per JSON utilizzando
JsonConvert.SerializeXmlNode(xmldoc, Formatting.Indented);
Il primo XML diventa questo
{
"List": {
"Content": {
"Row": {
"@Index": "0",
"Title": "Testing",
"PercentComplete": "0",
"DueDate": null,
"StartDate": null
}
}
}
}
E secondo questa
{
"List": {
"Content": {
"Row": [{
"@Index": "0",
"Title": "Update Documentation",
"PercentComplete": "0.5",
"DueDate": "2013-01-31 00:00:00",
"StartDate": "2013-01-01 00:00:00"
}, {
"@Index": "1",
"Title": "Write jQuery example",
"PercentComplete": "0.05",
"DueDate": "2013-06-30 00:00:00",
"StartDate": "2013-01-02 00:00:00"
}]
}
}
}
Come chiaramente si vede la riga nella seconda è una matrice come dovrebbe essere, ma non sul primo. C'è qualche soluzione nota su questo tipo di problemi o ho bisogno di implementare il controllo nel mio frontend ricevendo il JSON (che sarebbe un po 'problematico dal momento che le strutture sono molto dinamiche). Il modo migliore sarebbe se ci fosse un modo per forzare json.net a restituire sempre gli array.
ho trovato lo stesso problema si prega di trovare un altro soluntion se (XDocument.Parse (" 5,00 21,00 45.00 |
") .Descendants (" riga "). Count()> 1) {} se (XDocument.Parse (" 1,00 5,00 45,00 |
6,00 10,00 65,00 |
11,00 100,00 98.00 |
") .Descendants (" fila "). Count()> 1) { } –
pratik1020