Comment les désérialiser ?

la programmation


Doit être dynamique puisque les lignes sont dynamiques. Vous ne pouvez pas non plus utiliser d’autres DLL tierces puisque l’application est .net 3.5. J’utilise JavaScriptSerializer

JSON
{
 "0": {
        "caseNumber": "###",
        "name": "###, ###",
        "birthYear": "###",
        "caseLocation": "###",
        "caseType": "###",
        "dateFiled": "##/##/##",
        "type": "",
        "query": {
            "firstName": "###",
            "lastName": "###",
            "dateOfBirth": "####-##-##",
            "fileDateBegin": "####",
            "fileDateEnd": "####"
        },
        "color": "###",
        "names": [
            "###, ###"
        ],
        "rank": "###",
        "s": ###
    },
    "1": {
        "caseNumber": "###",
        "name": "###, ###",
        "birthYear": "###",
        "caseLocation": "###",
        "caseType": "###",
        "dateFiled": "##/##/##",
        "type": "",
        "query": {
            "firstName": "###",
            "lastName": "###",
            "dateOfBirth": "####-##-##",
            "fileDateBegin": "####",
            "fileDateEnd": "####"
        },
        "color": "###",
        "names": [
            "###, ###"
        ],
        "rank": "###",
        "s": ###
    },
    "failed": 0
}

Ce que j’ai essayé :

Avec jsonconvert. Mais il fallait créer une classe autonome car l’application est un framework .net 3.5 et ne fonctionne pas avec le nouveau newtown.json

J’ai essayé cela mais je n’ai récupéré aucune ligne.

C#
public class SearchIndex
{
    public string caseNumber { get; set; }
    public string name { get; set; }
    public int? birthYear { get; set; }
    public string caseLocation { get; set; }
    public string caseType { get; set; }
    public DateTime? dateFiled { get; set; }
    public string type { get; set; }
    public string color { get; set; }
}

Solution 1

Vous pouvez créer une classe autonome pour votre Json à l’aide de la fonctionnalité Visual Studio. Créez une classe C# vide, copiez votre JSON dans le presse-papiers, puis utilisez l’élément de menu Edition > Collage spécial > Coller JSON en tant que classes – et vous obtenez le code C# pour votre JSON. Suivez le lien ci-dessous pour créer votre classe pour la désérialisation. Convertir JSON en classes C# à l’aide de la fonctionnalité Coller JSON en tant que classes[^]

Solution 3

Vous pouvez utiliser des bibliothèques tierces. Newtonsoft.Json[^] prend en charge les versions remontant à .Net Framework 2.0. réf: Cadres pris en charge[^].

J’ai écrit un article complet Travailler avec Newtonsoft.Json en C# et VB[^] qui explique comment utiliser la bibliothèque ainsi que les cas particuliers où des convertisseurs personnalisés sont nécessaires.

コメント

タイトルとURLをコピーしました