这里是我的问题:用Json和JavaScriptSerializer反序列化JSON结果
我试图反序列化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瓦特/属性:
- hotelObj availableHotels
- INT totalFound
- 字符串responseId
- 字符串搜索ID
- hotelObj W /属性:
- 酒店酒店
- 酒店W /属性:
- 的ProcessID
- hotelCode
- availabilityStatus
- ...
因此,我知道我从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'.
什么是为了反序列化此对象的正确的句子?
谢谢!
我在阅读你的回应后我的:)抱歉复制它。但是你没有考虑到......部分酒店匹配,我认为是酒店类型 – Dimitri 2011-04-30 02:19:00
感谢弥敦道!那正是我需要的! – Gonzalo 2011-04-30 03:44:47