Okay, also habe ich überall hingeschaut und konnte keine Antwort finden, wie das geht.C# Wie kann ich meine JSON-Datei mit Newtonsoft deserialisieren?
Hier ist meine JSON-Datei
{
"item": {
"icon": "icon.png",
"icon_large": "icon_large.png",
"id": 453,
"type": "misc",
"typeIcon": "icontype.png",
"name": "Item name",
"description": "item description",
"current": {
"trend": "neutral",
"price": 174
},
"today": {
"trend": "positive",
"price": "+2"
},
"premium": "false"
}
}
ich diese Klasse als einen Weg versucht haben, es zu deserialisieren (ich nur die Sache des Namen und Preis aus dem „aktuellen“ Baum benötigen)
public class MyItem
{
public Dictionary<string, Item> item;
}
public class Item
{
public string name;
public Dictionary<string, Current> current;
}
public class Current
{
public string price;
}
und dies wird von meiner Haupt-Klasse namens
private void buttonAddItemToWatcher_Click(object sender, EventArgs e)
{
string url = "link to json above;
string json = new WebClient().DownloadString(url);
MyItem newItem = new MyItem();
JsonConvert.PopulateObject(json, newItem);
}
aber ich habe diesen Fehler
Eine nicht behandelte Ausnahme des Typs 'Newtonsoft.Json.JsonSerializationException> trat bei Newtonsoft.Json.dll
Zusätzliche Informationen: Fehlerwert Umwandlung> "icon.png" 'RS_GrandExchangeWatcher.Item' eingeben. Pfad ‚item.icon‘, Zeile 1, Position 95.
ich nicht ganz bin zu verstehen, wie ich meine Klasse, um meine MyItem Klasse mit dem json aufzufüllen einrichten I zur Verfügung gestellt haben
Ich ziehe den Deserializer mit 'Dictionary' Art und starken Typ eine Festigkeitsklasse zu verwenden, wenn Ich möchte nur bestimmte Elemente daraus machen. –
DataHerder
Automatisches Erstellen von Typen von JSON über Tool wie VS (http://StackOverflow.com/Questions/18526659/How-to-show-the-Paste-Json-Class-in-Simal-Studio-2012-when-clicking-on -Paste/18527793 # 18527793) oder http://json2csharp.com/ wird dein Leben viel einfacher machen. Code, der derzeit in dem Post vorhanden ist, hat keine Beziehung zu JSON, das Sie analysieren möchten. –
Vielen Dank! Das hat meine Probleme gelöst! – ThatBenderGuy