Laden...

JSON auslesen

Erstellt von Torni vor einem Jahr Letzter Beitrag vor einem Jahr 517 Views
T
Torni Themenstarter:in
50 Beiträge seit 2014
vor einem Jahr
JSON auslesen

Hallo,

bitte erschlagt mich nicht gleich.
Ich möchte mir ein wenig Erleichterung beim Extrahieren von Daten aus .JSON-Dateien verschaffen (alles manuell per copy&paste dauert bissl)..

Ich hab null Plan von Deserialisierung einer solchen Art und tue mich grade mit google bzw. dem Verstehen von dem was ich finde ein wenig schwer...

Kann mir wer hier mal ein paar Anschübe dahingehend geben wie ich es hinbekomme alle Daten der einzelnen Felder auszulesen / in ne Klasse zu packen, ohne dass ich den ganzen Text durchgehe und immer wieder nach ":" oder so in der Art suche und die einzeln abspeichern muss..
Klasse erstellen für die ganzen Unterknoten finde ich schon recht seltsam.
Gefundene Beispiele sind immer nur ein Hauptknoten und ein "Unterfeld"

Hier wie solch eine aufgebaut ist:


           {
            "test":true,
            "version":"2.0",
            "Angelegenheit":
                {
                "Tatsache":
                    {
                    "Fallart":"K",
                    "Tatsache spez":
                        {
                        "Faktencode":"R545",
                        "Kategorie":"1"
                        },
                    "Sammlung":
                        {
                        "Betrag":"120.0"
                        },
                    "DatumZeit":"2022-05-02T11:47:37+02:00",
                    "Officer":
                        [
                            {
                            "Seriennummer":"1",
                            "Mitarbeiternummer":"160101"
                            }
                        ],
                    "Pflegestelle":
                        {
                        "Stadtcode":"1234",
                        "Straßencode":"1",
                        "Straßenname":"A27",
                        "HektoM":"69.7",
                        "igO":"N"
                        },
                    "Fahrzeug":
                        {
                        "Fahrzeugcode":"BA",
                        "Ländercode":"6030",
                        "Kennzh":"B-12432"
                        },
                    "Optionen":
                        [
                            {
                            "Stichwort":"R545",
                            "Option":"1EigeneWahr7Golden",
                            "Variabeln":
                                [
                                    {
                                    "spezVariable":"Gründe dafür",
                                    "Freitext":"selbstverschuldet"
                                    }
                                ]
                            }
                        ]
                    },
                "Validierung":
                    [
                        {
                        "Code":"RDW",
                        "ausgefuehrt":"N"
                        }
                    ],
                "LParameter":
                    {
                    "AngabenErhalten":"J",
                    "GrundNachbearbeitung":"OVT"
                    },
                "Anhaenge":
                    [
                        {
                        "Anhangcode":"33",
                        "Anhangname":"12432.jpg",
                        "mimetype":"image/jpeg",
                        "Inhalt":"..."
                        }
                    ],
                "Projekt":
                    {
                        "Projektcode":"MAN"
                    }
                }
            }

G
154 Beiträge seit 2015
vor einem Jahr

Wenn du keine passende Klasse hast, mit System.Text.Json kann man meine ich in dynamic deserialisieren.


      dynamic obj = System.Text.Json.JsonSerializer.Deserialize<dynamic>("deinjsontext");

System.Text.Json ist von MS, gibt's im nuget.

D
261 Beiträge seit 2015
vor einem Jahr

Du kannst das JSON in die Zwischenablage nehmen und dann in Visual Studio über Edit - Paste Special - Paste JSON as Classes (siehe Screenshot) einfügen.
Visual Studio erstellt dir dann automatisch Klassen dafür.

Anstatt dynamic kannst du dann deine konkrete Klasse als Typ verwenden:


var myJsonObject = System.Text.Json.JsonSerializer.Deserialize<MyJsonObject>(jsonAsString);

T
Torni Themenstarter:in
50 Beiträge seit 2014
vor einem Jahr

@dannoe: hach, wie geil ist das denn..kannte ich so ja gar nicht..thx...