【发布时间】:2011-04-30 01:17:40
【问题描述】:
这是我的问题:
我正在尝试反序列化我尚未完成的 json。 json的格式如下:
{"responseId":1200,
"availableHotels":[
{"processId":"HA-84665605","hotelCode":"UKKTLT","availabilityStatus":"InstantConfirmation",...},
{"processId":"HA-28600965","hotelCode":"UKKTLT","availabilityStatus":"InstantConfirmation",...},
{"processId":"HI-63991185","hotelCode":"UKJOVF","availabilityStatus":"InstantConfirmation",...}
],
"totalFound":9,
"searchId":"TP-84026455"}
还有以下类:
- getAvailableHotelResponse w/属性:
- hotelObj availableHotels
- int totalFound
- 字符串 responseId
- 字符串搜索ID
- hotelObj 带属性:
- 酒店酒店
- 酒店带属性:
- 进程 ID
- 酒店代码
- 可用性状态
- ...
因此,我知道从 json 中可以看出它包含 getAvailableHotelResponse 对象的信息。
所以,我使用JsonConvert 和JavaScriptSerializer 尝试了以下操作:
JavaScriptSerializer ser = new JavaScriptSerializer();
getAvailableHotelResponse availableResponse = ser.Deserialize<getAvailableHotelResponse>(json);
// Exception: "Type 'com.hotelspro.api.getAvailableHotelResponse' is not supported for deserialization of an array"
List<getAvailableHotelResponse> items = ser.Deserialize<List<getAvailableHotelResponse>>(json);
// items.Count = 0
List<getAvailableHotelResponse> result = JsonConvert.DeserializeObject<List<getAvailableHotelResponse>>(json);
// Exception: "Cannot deserialize JSON object into type 'System.Collections.Generic.List`1[com.hotelspro.api.getAvailableHotelResponse]'."
getAvailableHotelResponse result2 = JsonConvert.DeserializeObject<getAvailableHotelResponse>(json);
// Exception: Cannot deserialize JSON array into type 'com.hotelspro.api.hotelObj'.
为了反序列化这个对象,正确的句子是什么?
谢谢!
【问题讨论】:
标签: c# .net json json.net javascriptserializer