2015-02-24 156 views
1

我有一個JSON字符串,像下面的字符串JSON字符串解析

{ 
    FlightId : 1, 
    [ 
     { 
      AirplaneId : 1 
     }, 
     { 
      AirplaneId : 2 
     } 
    ] 
} 

我已經定義了2班這個JSON字符串轉換爲這2類的對象:

class Airplane 
{ 
    int AirplaneId; 
} 

class Flight 
{ 
    int FlightId; 
    List<Airplane> Airplanes; 
} 

在轉換字符串到這些類對象我得到一個錯誤。該錯誤告訴我,JSON字符串不被識別,我應該爲我的JSON字符串中的列表定義一個名稱。我不能改變的JSON字符串,如何界定我的班這個JSON字符串

+2

您可以編輯您的問題,向我們展示您用於反序列化JSON字符串的代碼以及準確的錯誤消息嗎? – 2015-02-24 13:11:39

+4

*「我有一個JSON字符串,如下...」*不,你不知道。你有* *看起來像* JSON,但不是。因此,您不能使用JSON解串器來解析它。 – Heinzi 2015-02-24 13:15:26

回答

1

的問題是您的數組轉換,你需要定義一個關鍵的它,像:

{ 
    "FlightId" : 1, 
    "Airplanes": [ 
     { 
      "AirplaneId" : 1 
     }, 
     { 
      "AirplaneId" : 2 
     } 
    ] 
} 

Airplanes必須是稍後在你的班級列表。

JSON是一種基於「鍵值」的格式,所以每個值(偶數組)都需要一個鍵。

3

是的,你會得到一個錯誤,因爲這不是一個有效的JSON。

爲了使其有效,你需要有一個關鍵,以配合您的列表值:

{ 
    "FlightId" : 1, 
    "Airplanes": [ 
     { 
      "AirplaneId" : 1 
     }, 
     { 
      "AirplaneId" : 2 
     } 
    ] 
} 

此外,你需要用引號括您的鍵值。

您可以在將來使用https://www.jsoneditoronline.org/以確保您的JSON字符串有效。

+0

我跟我的JSON字符串提供者服務交談,他們相信他們給了我一個標準的JSON字符串。你怎麼看 ?! – 2015-02-24 13:20:43

+1

@AliForoughi我認爲他們是錯的,他們不知道JSON是什麼,或者你無意中粘貼了一個非串(按可能性順序降序)。 – 2015-02-24 13:22:14

+0

@AliForoughi如果你確定,你不會做任何複製粘貼錯誤,給他們發送一個JSON規範。就這樣 – BendEg 2015-02-24 13:35:01