2017-07-03 5 views
0

nicht in der Lage, eine Klasse zu erstellen, um diese json C# deserailize verursachen die Zahl Problem verursacht, während jede Hilfe Abbildung geschätzt Gründung Klasse schaffen selbst ist das Problemjson Mapping Ausgabe C#

{//this is the class name 
"1504076400": { 
    "VenueKey": "the-gazebo", 
    "IsShortBook": false, 
    "IsSaturday": false, 
    "Slots": [{ 
      "TS": 1504098000, 
      "String": "08-30-2017 6:00 AM", 
      "IsAvailable": false 
     }, 
     { 
      "TS": 1504099800, 
      "String": "08-30-2017 6:30 AM", 
      "IsAvailable": false 
     } 
    ] 
},//these numbers are causing problem 
"1504162800": { 
    "VenueKey": "the-gazebo", 
    "IsShortBook": false, 
    "IsSaturday": false, 
    "Slots": [{ 
      "TS": 1504184400, 
      "String": "08-31-2017 6:00 AM", 
      "IsAvailable": false 
     }, 
     { 
      "TS": 1504186200, 
      "String": "08-31-2017 6:30 AM", 
      "IsAvailable": false 
     } 
    ] 
} 
} 
+1

C# erlaubt es nicht, eine numerische Klassennamen – Ramakrishna

+1

Dies sind offensichtlich die gleiche Art von Objekt, aber die „Klassenname“ unterscheidet sich für jeder einzelne ... Sie können einen Klassennamen außer Kraft setzen, aber Ihrer Theorie zufolge haben Sie hier nicht eine Klasse, sondern eine unendliche Zahl. Können Sie versuchen, die Deserialisierung für ein Dictionary durchzuführen? Die Nummer sieht eher wie ein Schlüssel als ein Klassenname aus. In jedem Fall sieht dies nicht wie wohlgeformtes JSON aus - wenn Sie keine Kontrolle über den sendenden Code haben, möchten Sie vielleicht den Absender erreichen, um zu sehen, was seine Absicht ist ... –

+0

hat es nicht versucht funktioniert – Ramakrishna

Antwort

0

ich keine Probleme sehen weder Deserialisierung noch Json. Modell classe kann wie folgt aussehen:

class Venue 
{ 
    public string VenueKey { get; set; } 

    public bool IsShortBook { get; set; } 

    public bool IsSaturday { get; set; } 

    public Slot[] Slots { get; set; } 
} 

class Slot 
{ 
    public string TS { get; set; } 

    public string @String { get; set; } 

    public bool ISAvailable { get; set; } 
} 

Und desirialization funktioniert: JsonConvert.DeserializeObject<Dictionary<string, Venue>>(json);

+0

{"Fehler beim Konvertieren von Wert \" the-gazebo \ "in" TimeSlotChapelProblem.Venue ". Pfad '1504076400.VenueKey', Zeile 3, Position 29."} – Ramakrishna

+0

Sind Sie sicher? Ich habe mit JSON.Net Version 10 und Version 6 überprüft. Alles funktioniert gut. Was genau machst Du? [funktionierendes Beispiel] (https://dotnetfiddle.net/eFX7aX) –

+0

Ja sicher, das ist nur ein Beispiel json, dass ich tatsächlich eins geschrieben ist sehr lang – Ramakrishna