【发布时间】:2018-04-20 12:46:59
【问题描述】:
您好,我正在从 C# 调用 webapi。它返回 json 数据。这是一个嵌套的 JSON。如何将此 JSON 字符串转换为 Datatable。我读过很多建议使用类的帖子,但我的 json 字符串有多个分支。如何在不使用类的情况下将此 Json 字符串转换为 Datatable:
"PricedItineraries": {
"AirItinerary": {
"OriginDestinationOptions": {
"OriginDestinationOption": [{
"FlightSegment": [{
"DepartureAirport": {
"LocationCode": "JFK"
},
"ArrivalAirport": {
"LocationCode": "LAX"
},
"MarketingAirline": {
"Code": "AA"
},
"ArrivalTimeZone": {
"GMTOffset": -7
},
"TPA_Extensions": {
"eTicket": {
"Ind": true
}
},
"StopQuantity": 0,
"ElapsedTime": 376,
"ResBookDesigCode": "B",
"MarriageGrp": "O",
"Equipment": {
"AirEquipType": "32B"
},
"DepartureDateTime": "2018-07-07T07:00:00",
"ArrivalDateTime": "2018-07-07T10:16:00",
"FlightNumber": 33,
"OnTimePerformance": {
"Level": 9
},
"OperatingAirline": {
"FlightNumber": 33,
"Code": "AA"
},
"DepartureTimeZone": {
"GMTOffset": -4
}
}],
"ElapsedTime": 376
}, {
"FlightSegment": [{
"DepartureAirport": {
"LocationCode": "LAX"
},
"ArrivalAirport": {
"LocationCode": "JFK"
},
"MarketingAirline": {
"Code": "AA"
},
"ArrivalTimeZone": {
"GMTOffset": -4
},
"TPA_Extensions": {
"eTicket": {
"Ind": true
}
},
"StopQuantity": 0,
"ElapsedTime": 335,
"ResBookDesigCode": "B",
"MarriageGrp": "O",
"Equipment": {
"AirEquipType": "32B"
},
"DepartureDateTime": "2018-07-09T15:30:00",
"ArrivalDateTime": "2018-07-10T00:05:00",
"FlightNumber": 2201,
"OnTimePerformance": {
"Level": 8
},
"OperatingAirline": {
"FlightNumber": 2201,
"Code": "AA"
},
"DepartureTimeZone": {
"GMTOffset": -7
}
}],
"ElapsedTime": 335
}]
},
"DirectionInd": "Return"
},
"TPA_Extensions": {
"ValidatingCarrier": {
"Code": "AA"
}
},
"SequenceNumber": 3,
"AirItineraryPricingInfo": {
"PTC_FareBreakdowns": {
"PTC_FareBreakdown": {
"FareBasisCodes": {
"FareBasisCode": [{
"BookingCode": "B",
"DepartureAirportCode": "JFK",
"AvailabilityBreak": true,
"ArrivalAirportCode": "LAX",
"content": "QUAJZNB3"
}, {
"BookingCode": "B",
"DepartureAirportCode": "LAX",
"AvailabilityBreak": true,
"ArrivalAirportCode": "JFK",
"content": "QUAJZNB3"
}]
},
"PassengerTypeQuantity": {
"Quantity": 1,
"Code": "ADT"
},
"PassengerFare": {
"FareConstruction": {
"CurrencyCode": "USD",
"DecimalPlaces": 2,
"Amount": "249.30"
},
"TotalFare": {
"CurrencyCode": "USD",
"Amount": "296.40"
},
"Taxes": {
"TotalTax": {
"CurrencyCode": "USD",
"DecimalPlaces": 2,
"Amount": "47.10"
},
"Tax": [{
"CurrencyCode": "USD",
"DecimalPlaces": 1,
"TaxCode": "AY",
"Amount": 11.2
}, {
"CurrencyCode": "USD",
"DecimalPlaces": 1,
"TaxCode": "US1",
"Amount": 18.7
}, {
"CurrencyCode": "USD",
"DecimalPlaces": 0,
"TaxCode": "XF",
"Amount": 9
}, {
"CurrencyCode": "USD",
"DecimalPlaces": 1,
"TaxCode": "ZP",
"Amount": 8.2
}]
},
"BaseFare": {
"CurrencyCode": "USD",
"Amount": "249.30"
},
"EquivFare": {
"CurrencyCode": "USD",
"DecimalPlaces": 2,
"Amount": "249.30"
}
},
"Endorsements": {
"NonRefundableIndicator": true
}
}
},
"FareInfos": {
"FareInfo": [{
"TPA_Extensions": {
"Cabin": {
"Cabin": "Y"
},
"SeatsRemaining": {
"BelowMin": false,
"Number": 7
}
},
"FareReference": "B"
}, {
"TPA_Extensions": {
"Cabin": {
"Cabin": "Y"
},
"SeatsRemaining": {
"BelowMin": false,
"Number": 7
}
},
"FareReference": "B"
}]
},
"TPA_Extensions": {
"DivideInParty": {
"Indicator": false
}
},
"ItinTotalFare": {
"FareConstruction": {
"CurrencyCode": "USD",
"DecimalPlaces": 2,
"Amount": "249.30"
},
"TotalFare": {
"CurrencyCode": "USD",
"DecimalPlaces": 2,
"Amount": "296.40"
},
"Taxes": {
"Tax": [{
"CurrencyCode": "USD",
"DecimalPlaces": 2,
"TaxCode": "TOTALTAX",
"Amount": "47.10"
}]
},
"BaseFare": {
"CurrencyCode": "USD",
"DecimalPlaces": 2,
"Amount": "249.30"
},
"EquivFare": {
"CurrencyCode": "USD",
"DecimalPlaces": 2,
"Amount": "249.30"
}
}
},
}
它是json的一小部分,这部分重复了十次或更多次,请大家帮忙
【问题讨论】: