JSON.Net la Sérialisation Xml se méprend sur les tableaux

J'ai quelques générée automatiquement xmls où certaines parties du document xml peut avoir plusieurs lignes et certains ne peuvent pas. Le résultat est que si il ya une ligne d'un seul json nœud est retourné et si j'ai plusieurs lignes d'un tableau json noeuds sont retournés.

Les xmls peut ressembler à ceci

<List>
    <Content>
        <Row Index="0">
            <Title>Testing</Title>
            <PercentComplete>0</PercentComplete>
            <DueDate/>
            <StartDate/>
        </Row>
    </Content>
</List>

Ou avec plusieurs lignes

<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>

Lors de la sérialisation de ces JSON à l'aide de

JsonConvert.SerializeXmlNode(xmldoc, Formatting.Indented);

La première xml devient ce

{
    "List": {
        "Content": {
            "Row": {
                "@Index": "0",
                "Title": "Testing",
                "PercentComplete": "0",
                "DueDate": null,
                "StartDate": null
            }
        }
    }
}

Et le second, ce

{
    "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"
            }]
        }
    }
}

Comme peut clairement être vu la Ligne sur le second est un tableau que devrait être, mais pas sur la première. Est-il une solution connue à ce genre de questions ou ai-je besoin pour mettre en œuvre le vérifier dans mon frontend réception du JSON (ce serait un peu problématique parce que les structures sont très dynamiques). La meilleure façon serait si là où de toute façon d'appliquer json.net toujours y revenir tableaux.

  • J'ai trouvé le même problème s'il vous plaît trouver un autre soluntion si (XDocument.Parse("<RUT3><row><FromKG>5.00</FromKG><ToKG>21.00</ToKG><Rate>45.00</Rate></row></RUT3>").Descendants("row").Count() > 1) { } si (XDocument.Parse("<RUT3><row><FromKG>1.00</FromKG><ToKG>5.00</ToKG><Rate>45.00</Rate></row><row><FromKG>6.00</FromKG><ToKG>10.00</ToKG><Rate>65.00</Rate></row><row><FromKG>11.00</FromKG><ToKG>100.00</ToKG><Rate>98.00</Rate></row></RUT3>").Descendants("row").Count() > 1) { }
InformationsquelleAutor Eric Herlitz | 2013-01-23