C# 使用JSON反序列化JSON结果&;JavaScriptSerializer
我的问题是: 我正在尝试反序列化我没有完成的json。json的格式如下所示:C# 使用JSON反序列化JSON结果&;JavaScriptSerializer,c#,.net,json,json.net,javascriptserializer,C#,.net,Json,Json.net,Javascriptserializer,我的问题是: 我正在尝试反序列化我没有完成的json。json的格式如下所示: {"responseId":1200, "availableHotels":[ {"processId":"HA-84665605","hotelCode":"UKKTLT","availabilityStatus":"InstantConfirmation",...}, {"processId":"HA-28600965","hotelCode":"UKKTLT","availabilityStat
{"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可用酒店
- 找到整数
- 字符串响应ID
- 字符串搜索ID
- hotelObj w/酒店:
- 酒店
- 酒店及物业:
- 进程ID
- 酒店代码
- 可用性状态
jsonvert
和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'.
JavaScriptSerializer ser=newJavaScriptSerializer();
getAvailableHotelResponse availableResponse=ser.Deserialize(json);
//异常:“反序列化数组时不支持类型'com.hotelspro.api.getAvailableHotelResponse'”
列表项=序列反序列化(json);
//项目数=0
列表结果=JsonConvert.DeserializeObject(json);
//异常:“无法将JSON对象反序列化为类型‘System.Collections.Generic.List`1[com.hotelspro.api.getAvailableHotelResponse]”
getAvailableHotelResponse result2=JsonConvert.DeserializeObject(json);
//异常:无法将JSON数组反序列化为“com.hotelspro.api.hotelObj”类型。
反序列化这个对象的正确句子是什么
谢谢 很难根据您的描述解释对象的结构,但我能够使用以下最少的代码反序列化您的示例JSON:
var result = JsonConvert.DeserializeObject<getAvailableHotelResponse>(json);
public class getAvailableHotelResponse
{
public int responseId;
public availableHotel[] availableHotels;
public int totalFound;
public string searchId;
}
public class availableHotel
{
public string processId;
public string hotelCode;
public string availabilityStatus;
}
var result=JsonConvert.DeserializeObject(json);
公共类getAvailableHotelResponse
{
公共信息系统;
公共可用酒店[]可用酒店;
发现公共信息;
公共字符串搜索ID;
}
公共级酒店
{
公共字符串processId;
公共字符串酒店代码;
公共字符串可用性状态;
}
根据您的描述很难解释对象的结构,但我能够使用以下最少的代码反序列化您的示例JSON:
var result = JsonConvert.DeserializeObject<getAvailableHotelResponse>(json);
public class getAvailableHotelResponse
{
public int responseId;
public availableHotel[] availableHotels;
public int totalFound;
public string searchId;
}
public class availableHotel
{
public string processId;
public string hotelCode;
public string availabilityStatus;
}
var result=JsonConvert.DeserializeObject(json);
公共类getAvailableHotelResponse
{
公共信息系统;
公共可用酒店[]可用酒店;
发现公共信息;
公共字符串搜索ID;
}
公共级酒店
{
公共字符串processId;
公共字符串酒店代码;
公共字符串可用性状态;
}
上面列出的两个对象都不完全匹配JSON模式。。。您确定将对象序列化为JSON的人使用了您试图反序列化的任何类吗?如果没有,只需创建一个类,将JSON反序列化为:
public class HotelSearchResponse
{
public int responseID {get;set;}
public hotel[] availableHotels {get;set;}
public int totalFound {get;set;}
public string searchId {get;set;}
}
如果酒店
数组不起作用,请尝试使用列表
代替可用酒店
类型
另外,问题中列出的与JSON最接近的对象是
getAvailableHotelResponse
,但它将availableHotels
声明为singlehotel
Instance,而JSON返回了一系列hotel
对象。上述两个对象都不完全匹配JSON模式。。。您确定将对象序列化为JSON的人使用了您试图反序列化的任何类吗?如果没有,只需创建一个类,将JSON反序列化为:
public class HotelSearchResponse
{
public int responseID {get;set;}
public hotel[] availableHotels {get;set;}
public int totalFound {get;set;}
public string searchId {get;set;}
}
如果酒店
数组不起作用,请尝试使用列表
代替可用酒店
类型
另外,与您问题中列出的JSON最接近的对象是
getAvailableHotelResponse
,但它将availableHotels
声明为singlehotel
Instance,而JSON返回了一系列hotel
对象。我在发布我的回复后阅读了您的回复:)抱歉重复了。但是你没有考虑到。。。酒店比赛的一部分,我认为是酒店类型谢谢内森!这正是我所需要的!我在发布我的回复后看到了你的回复:)很抱歉重复了。但是你没有考虑到。。。酒店比赛的一部分,我认为是酒店类型谢谢内森!这正是我所需要的!谢谢迪米特里!你的回答和内森说的正是我需要的!谢谢迪米特里!你的回答和内森说的正是我需要的!