myCSharp.de - DIE C# und .NET Community
Willkommen auf myCSharp.de! Anmelden | kostenlos registrieren
 
 | Suche | FAQ

» Hauptmenü
myCSharp.de
» Startseite
» Forum
» FAQ
» Artikel
» C#-Snippets
» Jobbörse
» Suche
» Regeln
» Wie poste ich richtig?
» Forum-FAQ

Mitglieder
» Liste / Suche
» Wer ist wo online?

Ressourcen
» openbook: Visual C#
» openbook: OO
» Microsoft Docs

Team
» Kontakt
» Übersicht
» Wir über uns

» myCSharp.de Diskussionsforum
Du befindest Dich hier: Community-Index » Diskussionsforum » Entwicklung » Grundlagen von C# » MultiArray aus JSON in ein Objekt Deserialisieren
Letzter Beitrag | Erster ungelesener Beitrag Druckvorschau | Thema zu Favoriten hinzufügen

Antwort erstellen
Zum Ende der Seite springen  

MultiArray aus JSON in ein Objekt Deserialisieren

 
Autor
Beitrag « Vorheriges Thema | Nächstes Thema »
UltraEdit
myCSharp.de-Mitglied

avatar-312.gif


Dabei seit: 02.06.2013
Beiträge: 54
Entwicklungsumgebung: VS Community 2015
Herkunft: Dortmund


UltraEdit ist offline

MultiArray aus JSON in ein Objekt Deserialisieren

Beitrag: beantworten | zitieren | editieren | melden/löschen       | Top

Hallo Zusammen,
ich hätte gerne eine Frage:

Ich versuche ein JSON-GameSaveFile zu deserialisieren...
Soweit klappt schon alles, ABER, bei einer Struktur habe ich ein VerständnisProblem:

Folgende 2 Struktur-Teile(Arrays?):
(Bei dem 1. klappt es, das 2. verstehe ich leider nicht!)

XML-Code:
    "aHM": [
      [ 119000.0, 14000.0, 45000.0 ],
      [ 343000.0, 127000.0, -360000.0 ],
      ...
    ],
    "?=a": [
      [ true, "0x7DCF24586AD976E1" ],
      [ true, "0x163C931B5718FDDB" ],
      ...
    ],

Das 1. Array kann ich problemlos deserialisieren mit:

C#-Code:
        [JsonProperty("aHM")]
        public double[][] PlanetPositions { get; set; }

(Ausgabe siehe Screenshot...)

Das 2. Array verstehe ich nicht:
(ich versuche es wie folgt:)

C#-Code:
        [JsonProperty("?=a")]
        public SystemSeed[][] PlanetSeeds { get; set; }

(Ausgabe siehe Screenshot...)

SystemSeed löse ich wie folgt auf:

C#-Code:
    public class SystemSeed
    {
        public bool? Bool;
        public string String;

        public static implicit operator SystemSeed(bool Bool) => new SystemSeed { Bool = Bool };
        public static implicit operator SystemSeed(string String) => new SystemSeed { String = String };
    }

(Der Code ist geklaut und ich verstehe ihn auch nicht.)

Das Problem: Das Array wird DOPPELT aufgelöst.
(Ausgabe siehe Screenshot...)

Bei diesem Array fehlen ja die Bezeichner...

XML-Code:
[ true, "0x7DCF24586AD976E1" ]

WAS muss tun um soetwas aufzulösen?

Vielen Dank im Voraus...
UltraEdit

UltraEdit hat dieses Bild (verkleinerte Version) angehängt:
1.jpg
Volle Bildgröße

Dieser Beitrag wurde 1 mal editiert, zum letzten Mal von UltraEdit am 18.11.2018 16:42.

18.11.2018 16:38 E-Mail | Beiträge des Benutzers | zu Buddylist hinzufügen
Papst Papst ist männlich
myCSharp.de-Mitglied

Dabei seit: 28.09.2014
Beiträge: 220
Entwicklungsumgebung: VS2017
Herkunft: Kassel


Papst ist offline

Beitrag: beantworten | zitieren | editieren | melden/löschen       | Top

Das liegt daran, dass "?=a" ein Array von Arrays mit unterschiedlichen Typen ist, du aber ein Array of SystemSeed daraus machen willst.
Entweder, du gehst da in mehreren Schritten heran (z.B. erst in ein Array deserialisieren und dann in ein Objekt verwandeln) oder schaust dir die JsonConverter von JSON.NET an.
18.11.2018 18:06 E-Mail | Beiträge des Benutzers | zu Buddylist hinzufügen
Baumstruktur | Brettstruktur       | Top 
myCSharp.de | Forum Der Startbeitrag ist älter als 11 Monate.
Der letzte Beitrag ist älter als 11 Monate.
Antwort erstellen


© Copyright 2003-2019 myCSharp.de-Team | Impressum | Datenschutz | Alle Rechte vorbehalten. | Dieses Portal verwendet zum korrekten Betrieb Cookies. 14.11.2019 06:41