Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/272.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 反序列化JSON不使用newtonsoft.JSON_C#_Json_Serialization_Json.net - Fatal编程技术网

C# 反序列化JSON不使用newtonsoft.JSON

C# 反序列化JSON不使用newtonsoft.JSON,c#,json,serialization,json.net,C#,Json,Serialization,Json.net,我有一个json字符串,如下所示,我正在将其反序列化到我的类对象中,但我不能,这是我的json: { "TraceId": "24bf6a01-5d8f-4959-9173-20600a04b738", "TransactionId": "AFC48AE50A076477C3E069296AC3F884", "ResponseTime": "1672", "DistanceUnits": "MI", "CurrencyType": "GBP", "

我有一个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; }
}
公共级低票价搜索RSP
{
公共字符串TraceId{get;set;}
公共字符串TransactionId{get;set;}
公共字符串响应时间{get;set;}
公共字符串距离单位{get;set;}
公共字符串CurrencyType{get;set;}
公共字符串air{get;set;}
公共FlightDetailsList FlightDetailsList{get;set;}
}
公共类航班明细表
{
公共列表FlightDetails{get;set;}
}
公共类航班详情
{
公共字符串密钥{get;set;}
公共字符串源{get;set;}
公共字符串目标{get;set;}
公共日期时间出发{get;set;}
公共日期时间到达时间{get;set;}
公共字符串FlightTime{get;set;}
公共字符串旅行时间{get;set;}
公共字符串设备{get;set;}
公共字符串OriginTerminal{get;set;}
公共字符串DestinationTerminal{get;set;}
}
我正在使用NewtonSoft库将json反序列化到我的类对象,但出现以下错误:

{“无法反序列化当前JSON对象(例如。 {\'name\':\'value\'})转换为类型 'System.Collections.Generic.List'1[ParseSoapEnveloperReqRes.LowFareSearchRsp]' 因为该类型需要一个JSON数组(例如[1,2,3])来反序列化 正确。\r\n若要修复此错误,请将JSON更改为JSON数组 (例如[1,2,3])或更改反序列化类型,使其成为正常类型 .NET类型(例如,不是integer之类的基元类型,也不是集合 可以从JSON反序列化的类型(如数组或列表) 还可以将object.JsonObjectAttribute添加到类型以强制它 从JSON对象反序列化。\r\n路径“TraceId”,第2行,位置 12.“}

以下是我反序列化json字符串的代码:

var LowFareSearchRsps = JsonConvert.DeserializeObject<List<LowFareSearchRsp>>(jsonString);
var LowFareSearchRsps=JsonConvert.DeserializeObject(jsonString);

我想他已经搜索了整个互联网,但找不到解决办法。请帮忙。谢谢。

您的JSON不代表
列表
,而是
低票价搜索rsp

您的JSON不代表
列表
,而是
低票价搜索rsp

您的JSON字符串代表的是一个对象,而不是数组更改,请将代码反序列化如下:

var LowFareSearchRsps = JsonConvert.DeserializeObject<LowFareSearchRsp>(jsonString);
var LowFareSearchRsps=JsonConvert.DeserializeObject(jsonString);

您的JSON字符串表示的是一个对象,而不是数组。请将反序列化代码更改为如下所示:

var LowFareSearchRsps = JsonConvert.DeserializeObject<LowFareSearchRsp>(jsonString);
var LowFareSearchRsps=JsonConvert.DeserializeObject(jsonString);

是的,我知道,但是在我的
LowFareSearchRsp
类中,有一个对象
FlightDetailsList
,它有一个
列表。。因此,我如何反序列化您正试图将整个内容反序列化为一个
列表
,但结构的最外层是一个映射;不是数组。是的,我知道,但是在我的
LowFareSearchRsp
类中,有一个对象
FlightDetailsList
,它有一个
列表。。因此,我如何反序列化您正试图将整个内容反序列化为一个
列表
,但结构的最外层是一个映射;不是数组。