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; }
}
5 Réponses :
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; }
} 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();
}
À propos de votre première approche,
C'est facile et vos objets de modèle doivent être: p>
C'est le moyen le plus simple de récupérer les URL sans avoir à déclarer une classe personnalisée et ceci est le code ci-dessus formaté dans une doublure à une doublure pratique p>