Ich bin neu in Newtonsoft und ich versuche meine JSON-Datei deserialise dann bestimmte Datenpunkte davon abzufragen. Hier ist ein Beispiel für den JSON.Deserialise JSON-Datei mit newtonsoft und Abfrage mit linq
[
{
"reward_type": "1",
"rejected": "0",
"user_id": "538653",
"granted": "0"
},
{
"reward_type": "5",
"rejected": "0",
"user_id": "536345",
"granted": "1"
},
{
"reward_type": "5",
"rejected": "0",
"user_id": "539493",
"granted": "1"
}
]
Ich versuche, die Werte nach jeder Art abzufragen. Ich habe versucht, ein paar Tage lang die Dokumentation für Json.net einzupacken, aber ich habe Probleme, Beispiele für die Deserialisierung von Dateien zu finden.
Hier ist, was ich verwendet habe, um die Datei zu analysieren.
InitializeComponent();
JArray adData1 = JArray.Parse(File.ReadAllText(@"c:\ads.json"));
using (StreamReader file = File.OpenText(@"c:\ads.json"))
using (JsonTextReader reader = new JsonTextReader(file))
{
JsonSerializer serializer = new JsonSerializer();
JArray adData2 = (JArray)serializer.Deserialize(file, typeof(JArray));
JObject rewardType = (JObject)adData2[1];
label1.Text = rewardType.ToString();
}
Jede Hilfe wird geschätzt.
Ihre beste Wette (IMHO) in ein DTO/POCO Objekt deserialisieren (einfache C# -Klasse mit nur grundlegenden Eigenschaften darauf) und dann linq Abfrage gegen sie. Siehe https://www.newtonsoft.com/json/help/html/DeserializeObject.htm – granadaCoder
Sie könnten anonyme Typen verwenden, denke ich. Schwieriger, IMHO zu erhalten: https://www.newtonsoft.com/json/help/html/DeserializeAnonymousType.htm – granadaCoder
Ihrem JSON-Beispiel fehlen die einschließenden eckigen Klammern '[]', die es zu einem gültigen Array von Objekten machen würden. Wenn die Klammern tatsächlich im gesamten JSON vorhanden sind, sollten Sie sie in Ihrer Frage anzeigen. Wenn sie nicht dort sind, dann ist Ihr JSON ungültig, und das könnte ein Teil des Grundes sein, warum Sie Probleme haben, es zu analysieren. –