System: C# 3.5 Datatable, newtonsoft JSON
Hallo Leute
Mal wieder son blöder Spezialfall.
Ich bekomme eine Jsondatei in der ein Array unterthalb des Hauptknotens existiert.
Die Jsondatei soll als Datatable deserialisiert werden und hat entsprechend auch eine per Relation verknüpfte Untertabelle. Nur wenn ich dass deserialisiere mit json, dann steht in der Unterverknüpfung nur System.String[] und es wird nichts in die Untertabelle geschrieben.
Hier der prinzipielle Aufbau:
Json Datei:
[
{
"id":11,
"titel":"blumen",
"menge":21,
"bezeichnungen":["rose","tulpe"]
},
{
"id":12,
"titel":"bäume",
"menge":"3",
"bezeichnungen":["birke","ahorn"]
}
]
Dataset:
dtHaupt
- id (int)
- titel (string)
- menge (int)
dtSub
- id (int)
- bezeichnungen (string)
RelationHauptSub
-id (haupt)
-id (sub)
Code:
json = ...//Inhalt von Jsondatei
DataSet1.dtHauptDataTable testtabelle = JsonConvert.DeserializeObject<DataSet1.dtHauptDataTable>(json);
Anzeige der Datatable im Debugger:
id, titel, menge,bezeichnungen
11,blumen,21,System.String[]
12,bäume,3,System.String[]
Mir fehlt aber in der dtSub folgende Einträge
id,bezeichnung
11,rose
11,tulpe
12,birke
12,ahorn
Was muss ich im c# code ändern, damit es klappt?
Grüße Cornflake
Hmm, ist ein gültiges Json und sieht auch gut im Json-Viewer aus.
Auch das automatische generieren in einer Klasse funktioniert wie erwartet:
public class RootObject
{
public int id { get; set; }
public string titel { get; set; }
public object menge { get; set; }
public List<string> bezeichnungen { get; set; }
}
Was passiert, wenn Du erst in eine Klasse serialisierst und dann in eine DataTable?
Hi
habe das serialisieren in eine Klasse hinbekommen. Sogar mit der Liste.
Aber wie klappt das jetzt mit dem Umwandeln in eine DataTable?
Ok habe es jetzt mit einen anderen Weg hinbekommen.
Endziel soll eine CSV Datei sein.
Mit dem Tipp: Best practices for serializing objects to a custom string format for use in an output file hat es geklappt.
@trib: Danke für den Hinweis mit der Klasse und dem Link 😃 hat weitergeholfen