2017-07-03 53 views
0

無法創建一個類來deserailize此JSON C#導致數是造成問題,而映射任何幫助表示讚賞 開始創建類本身就是JSON映射問題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#不允許數值類名 – Ramakrishna

+1

這顯然是同一類型的對象,但「類名」是不同的每一個......你可以重寫一個類名,但根據你的理論,你沒有一個類在這裏表示,但無限數量。你可以嘗試反序列化爲Dictionary 嗎?這個數字看起來更像是一個關鍵詞,而不是一個類名。無論如何,這看起來不像格式良好的JSON--如果你對發送代碼沒有任何控制權,你可能想與發件人聯繫,看看他們的意圖是什麼...... –

+0

試過它沒有工作 – Ramakrishna

回答

0

我看不出問題的問題既不是反序列化也不是json。型號CLASSE可以看起來像:

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; } 
} 

而且desirialization正常工作: JsonConvert.DeserializeObject<Dictionary<string, Venue>>(json);

+0

{「錯誤轉換值\」the-gazebo \「鍵入'TimeSlotChapelProblem.Venue'。Path'1504076400.VenueKey',line 3,position 29.」} – Ramakrishna

+0

Are you sure?我檢查了JSON.Net版本10和版本6.所有工作正常。你究竟做了什麼? [工作示例](https://dotnetfiddle.net/eFX7aX) –

+0

是的確定這只是樣本json,我發佈的實際一個很長 – Ramakrishna