ASP.NET (C#) - JSON zu verschateltes Objekt (Anfänger-Frage)
-
Erstmal hallo. Ich bin ein absoluter C#-Anfänger und habe auch noch nicht viel damit gemacht. (komme eigentlich aus der PHP-Ecke) Die Syntax ist mir aber bekannt, nur viele Strukturen erkenne ich noch nicht. Ich baue eine typische ASP.NET-Website und verwende C# für die serverseitigen Skripte...
In diesem Fall, soll ein JSON-String zu einem Objekt mit darin enthaltenen ObjectArray werden...
Ich hab bspw. ein simples JSON:
{ "header": { "info":20, "execTime":"93ms" }, "data": [ { "offerType":"car", "currency":"EUR" }, { "offerType":"bike", "currency":"EUR" }, { "offerType":"shoe", "currency":"USD" } ] }
Und mein C#-Skript:
string json = /*JSON-SIEHE-OBEN*/ obj_data[] data = JsonConvert.DeserializeObject<obj_data[]>(json);
Mein Ziel ist es, zumindest das Objekt data aus dem JSON-String auszulesen und entsprechen aufrufen zu könmnen...
Response.Write(data[2].currency);
Das funktioniert auch soweit, insofern ich ausschließlich das Array im JSON-String (also ohne das Objekt "data") initialisiere...
ich vermute, ich muss meine DataType-Klasse entsprechend verändern:
public class obj_data { public string offerType { get; set; } public string currency { get; set; } }
Wer kann mir helfen??
-
Ja, mit der gezeigten Klasse sollte es funktionieren.
Ansonsten einfach mal von C# aus ein obj_data-Array anlegen und dann per JSON serialisieren (und dann schauen was evtl. noch anders ist).
-
//als DataTypes...
public class header { public int info { get; set; } public string execTime { get; set; } } public class data { public string offerType { get; set; } public string currency { get; set; } } public class json { public header header { get; set; } public List data { get; set; } }
//und dann im Skript...
string json = "{...}"; json offer = JsonConvert.DeserializeObject<json>(json); Response.Write(offer.data[2].currency);
-
Bei der Lösung des Problems hat mir übrigens dieser DataTypes-Klassen-Generator geholfen
-
Bei der Lösung des Problems hat mir übrigens dieser DataTypes-Klassen-Generator geholfen
das is cool .. gibts sowa auch für XML=> classmodel converteR?;)
-
Ja, gibt es: XSD (schon beim VS als Konsolentool dabei)
Oder aber xsd2Code.
Einfach mittels XSD aus einer XML-Datei eine XSD erzeugen und dann wiederum mittels XSD oder xsd2Code den Code erzeugen lassen.