我試圖寫一個API - 在其網站上所示的預期輸出(用於第三方)低於JSON:在ASP.Net轉換JSON到C#類MVC
{
"api_version" : 4 ,
"hotel_ids" : [97497],
"hotels" :
[
{
"hotel_id": 97497,
"room_types":
{
"Fenway Room":
{
"url": "someurlhere",
"price": 178.50,
"room_code": "SINGLE"
}
}
}
]
}
它給了我下面的類:使用在線工具M
public class FenwayRoom
{
public string url { get; set; }
public double price { get; set; }
public string room_code { get; set; }
}
public class RoomTypes
{
public FenwayRoom __invalid_name__Fenway Room { get; set; }
}
public class Hotel
{
public int hotel_id { get; set; }
public RoomTypes room_types { get; set; }
}
public class RootObject
{
public int api_version { get; set; }
public List<int> hotel_ids { get; set; }
public List<Hotel> hotels { get; set; }
}
你可以看到RoomTypes:
FenwayRoom __invalid_name__Fenway Room { get; set; }
我在想,如果他們的JSON規範是錯誤的,或者有沒有辦法讓我創建類來返回他們期待的JSON?
在這個例子中,我認爲房型「Fenway Room」是一個變量 - 所以我不認爲它也可以是類名。但可能只是我不知道如何創建這樣的課程。
我只是無法弄清楚「Fenway房間」 - 我認爲需要這樣的房間:「房間名稱」:「Fenway房間」 - 但也許有另一種定義類的方法,以便它不會不需要標籤「房間名稱」。
我很感激任何幫助確認是否有可能創建類來匹配他們的JSON。
謝謝,馬克
你嘗試'JavaScriptSerializer'?它有一個通用的方法來轉換 這裏是檢查出 鏈接http://msdn.microsoft.com/en-us/library/bb355316.aspx –
的問題似乎是「芬威房」具有它的空間 - 因此該工具無法自動爲其生成映射,因爲標識符中不允許使用空格。所以你可能不得不使用一些不依賴直接標識符映射的自定義序列化技術。當然,如果供應商可以修改他們的飼料,以刪除空間,所有更好 –
嗨亞歷克斯 - 不,那是什麼?我必須創建該對象以返回我的MVC C#代碼 - 並且該對象必須返回上面首先粘貼的示例代碼。我只是無法弄清楚「Fenway Room」 - 我認爲它需要這樣的內容:「Room Name」:「Fenway Room」 - 但也許還有另一種定義類的方法,以便它不需要標籤「房間名稱」。謝謝,Mark – Mark