[英]Deserialize JSON not working with newtonsoft.json
我有一個如下的json字符串,我正在將反序列化到我的類對象中,但我不能,這是我的json .:
{
"TraceId": "24bf6a01-5d8f-4959-9173-20600a04b738",
"TransactionId": "AFC48AE50A076477C3E069296AC3F884",
"ResponseTime": "1672",
"DistanceUnits": "MI",
"CurrencyType": "GBP",
"xmlns:air": "http://www.travelport.com/schema/air_v42_0",
"air:FlightDetailsList": {
"air:FlightDetails": [
{
"Key": "hx5kk+3R2BKAuFzqAAAAAA==",
"Origin": "DXB",
"Destination": "LHE",
"DepartureTime": "2017-12-10T13:55:00.000+04:00",
"ArrivalTime": "2017-12-10T17:55:00.000+05:00",
"FlightTime": "180",
"TravelTime": "180",
"Equipment": "320",
"OriginTerminal": "1",
"DestinationTerminal": "M"
},
{
"Key": "hx5kk+3R2BKAwFzqAAAAAA==",
"Origin": "LHE",
"Destination": "DEL",
"DepartureTime": "2017-12-20T12:15:00.000+05:00",
"ArrivalTime": "2017-12-20T14:10:00.000+05:30",
"FlightTime": "85",
"TravelTime": "690",
"Equipment": "ATR",
"OriginTerminal": "M",
"DestinationTerminal": "3"
},
{
"Key": "hx5kk+3R2BKAyFzqAAAAAA==",
"Origin": "DEL",
"Destination": "DXB",
"DepartureTime": "2017-12-20T20:25:00.000+05:30",
"ArrivalTime": "2017-12-20T22:45:00.000+04:00",
"FlightTime": "230",
"TravelTime": "690",
"Equipment": "788",
"OriginTerminal": "3",
"DestinationTerminal": "1"
}
]
}
}
所以,我想轉換到類LowFareSearchRsp及其FlightDetails類下面還顯示:
public class LowFareSearchRsp
{
public string TraceId { get; set; }
public string TransactionId { get; set; }
public string ResponseTime { get; set; }
public string DistanceUnits { get; set; }
public string CurrencyType { get; set; }
public string air { get; set; }
public FlightDetailsList FlightDetailsList { get; set; }
}
public class FlightDetailsList
{
public List<FlightDetails> FlightDetails { get; set; }
}
public class FlightDetails
{
public string Key { get; set; }
public string Origin { get; set; }
public string Destination { get; set; }
public DateTime Departure { get; set; }
public DateTime ArrivalTime { get; set; }
public string FlightTime { get; set; }
public string TravelTime { get; set; }
public string Equipment { get; set; }
public string OriginTerminal { get; set; }
public string DestinationTerminal { get; set; }
}
並且我正在使用NewtonSoft庫將該json反序列化為我的類對象,但是收到以下錯誤:
{“無法反序列化當前JSON對象(例如{\\” name \\“:\\” value \\“})為類型'System.Collections.Generic.List`1 [ParseSoapEnveloperReqRes.LowFareSearchRsp]',因為該類型需要JSON數組( \\ r \\ n要解決此錯誤,可以將JSON更改為JSON數組(例如[1,2,3]),也可以更改反序列化類型以使其正常。可以從JSON對象反序列化的NET類型(例如,不是整數的原始類型,不是數組或List的集合類型)。還可以將JsonObjectAttribute添加到該類型中,以強制從JSON對象反序列化。 \\ n路徑'TraceId',第2行,位置12。“}
這是我的反序列化json字符串的代碼:
var LowFareSearchRsps = JsonConvert.DeserializeObject<List<LowFareSearchRsp>>(jsonString);
我已經搜索了整個互聯網,但找不到解決方案。 請幫助。 謝謝。
您的JSON不代表List<LowFareSearchRsp>
而是代表LowFareSearchRsp
。
您的JSON字符串表示一個對象,而不是數組更改,反序列化代碼如下:
var LowFareSearchRsps = JsonConvert.DeserializeObject<LowFareSearchRsp>(jsonString);
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.