0
votes

Lire le fichier JSON C # avec dictionnaire ou liste à l'intérieur comme valeur

J'ai ce fichier JSON:

class Passeges
{

    public string images { get; set; }
    public string id { get; set; }
    public string answers { get; set; }
    public string type { get; set; }
    public string row { get; set; }
    public string value { get; set; }
    public string url { get; set; }
    public string content { get; set; }    
}


0 commentaires

5 Réponses :


0
votes

Avez-vous essayé d'utiliser deux classes pour analyser votre JSON comme celui-ci?

p>

public class Id
{
    public int value { get; set; }
    public string url { get; set; }
    public string content { get; set; }
}

public class RootObject
{
    public string images { get; set; }
    public List<Id> id { get; set; }
    public List<string> answers { get; set; }
    public string type { get; set; }
    public string row { get; set; }
}


0 commentaires

1
votes

Le modèle n'est pas dans le bon format. Je vous suggère d'utiliser JSON2CSHARP pour convertir le JSON code> à Classe code > et utilisez désériializeObject code> pour obtenir le résultat.

    static void Main(String[] args)
    {
        string filePath = @"D:\RnD\test.json";
        string jsonString;
        var fileStream = new FileStream(filePath, FileMode.Open, FileAccess.Read);
        using (var streamReader2 = new StreamReader(fileStream, Encoding.UTF8))
        {
            jsonString = streamReader2.ReadToEnd();
        }

        var results = Newtonsoft.Json.JsonConvert.DeserializeObject<List<RootObject2>>(jsonString);

        var urls = new List<string>();

        foreach (var result in results)
        {
            foreach (var id in result.id)
            {
                urls.Add(id.url);
            }               
        }

        foreach (var item in urls)
        {
            Console.WriteLine(item);
        }

        Console.ReadLine();
    }


0 commentaires

0
votes

À propos de votre première approche, résultat est un tableau. Je pense que vous devriez faire quelque chose comme: xxx


0 commentaires

1
votes

C'est facile xxx

et vos objets de modèle doivent être: xxx


0 commentaires

0
votes

C'est le moyen le plus simple de récupérer les URL sans avoir à déclarer une classe personnalisée xxx

et ceci est le code ci-dessus formaté dans une doublure à une doublure pratique xxx


0 commentaires