2017-04-10 15 views
2

saber InstaFlight APIに接続し、JSONで結果を得ました。出力文字列が長すぎて、その値を取得できます。しかし私のやり方は、たくさんの記憶領域を取っていることです。私はVB.NETでメモリストレージとダイナミックな方法を必要とする方法が欲しいです。saber InstaFlight APIの処理方法JSONレスポンス

以下のコードは、エラーなしで正常に動作している:

response2 = DirectCast(postReq.GetResponse(), HttpWebResponse) 
reader2 = New StreamReader(response2.GetResponseStream()) 
postReq.ContentType = "application/json; charset=utf-8" 
Dim ser1 As JObject = JObject.Parse(reader2.ReadToEnd()) 

私はエラーなしで、このような値を取得することができます:

ElapseTime1 = ser1("PricedItineraries")(0)("AirItinerary")("OriginDestinationOptions")("OriginDestinationOption")(0)("ElapsedTime").Value(Of String)() 

しかし、それはあなたが必要なポイントになります数百の変数とこれは正しい方法ではありません。

出力JSONの例:私はあなたがこの結果のモデルを作成する必要があると思う

{ "PricedItineraries": [ { "AirItinerary": { "OriginDestinationOptions": { "OriginDestinationOption": [ { "FlightSegment": [ { "DepartureAirport": { "LocationCode": "JFK" }, "ArrivalAirport": { "LocationCode": "LAS" }, "MarketingAirline": { "Code": "AS" }, "ArrivalTimeZone": { "GMTOffset": -7 }, "TPA_Extensions": { "eTicket": { "Ind": true } }, "StopQuantity": 0, "ElapsedTime": 344, "ResBookDesigCode": "R", "MarriageGrp": "O", "Equipment": { "AirEquipType": 320 }, "DepartureDateTime": "2017-07-07T09:30:00", "ArrivalDateTime": "2017-07-07T12:14:00", "FlightNumber": 1251, "OnTimePerformance": { "Percentage": 70 }, "OperatingAirline": { "CompanyShortName": "VIRGIN AMERICA", "FlightNumber": 251, "Code": "VX" }, "DepartureTimeZone": { "GMTOffset": -4 } }, { "DepartureAirport": { "LocationCode": "LAS" }, "ArrivalAirport": { "LocationCode": "LAX" }, "MarketingAirline": { "Code": "AS" }, "ArrivalTimeZone": { "GMTOffset": -7 }, "TPA_Extensions": { "eTicket": { "Ind": true } }, "StopQuantity": 0, "ElapsedTime": 85, "ResBookDesigCode": "R", "MarriageGrp": "O", "Equipment": { "AirEquipType": 320 }, "DepartureDateTime": "2017-07-07T14:45:00", "ArrivalDateTime": "2017-07-07T16:10:00", "FlightNumber": 1475, "OnTimePerformance": { "Percentage": 36 }, "OperatingAirline": { "CompanyShortName": "VIRGIN AMERICA", "FlightNumber": 475, "Code": "VX" }, "DepartureTimeZone": { "GMTOffset": -7 } } ], "ElapsedTime": 580 }, { "FlightSegment": [ { "DepartureAirport": { "LocationCode": "LAX" }, "ArrivalAirport": { "LocationCode": "LAS" }, "MarketingAirline": { "Code": "AS" }, "ArrivalTimeZone": { "GMTOffset": -7 }, "TPA_Extensions": { "eTicket": { "Ind": true } }, "StopQuantity": 0, "ElapsedTime": 71, "ResBookDesigCode": "R", "MarriageGrp": "O", "Equipment": { "AirEquipType": 320 }, "DepartureDateTime": "2017-07-08T17:00:00", "ArrivalDateTime": "2017-07-08T18:11:00", "FlightNumber": 1480, "OnTimePerformance": { "Percentage": 55 }, "OperatingAirline": { "CompanyShortName": "VIRGIN AMERICA", "FlightNumber": 480, "Code": "VX" }, "DepartureTimeZone": { "GMTOffset": -7 } }, { "DepartureAirport": { "LocationCode": "LAS" }, "ArrivalAirport": { "LocationCode": "JFK" }, "MarketingAirline": { "Code": "AS" }, "ArrivalTimeZone": { "GMTOffset": -4 }, "TPA_Extensions": { "eTicket": { "Ind": true } }, "StopQuantity": 0,

+1

あなたは質問のためにあなたのJSONを凝縮検討すべきです。 [MCVE]の作成方法をご覧ください。 – Bugs

答えて

1

。このJSONによれば、クラスモデルを作成する必要があります。

あなたはこのJSON持ちの場合:

{ 
"dailyDealId": "432", 
"discountPercentage": "0", 
"product": { 
    "productId": "10", 
    "brandId": "10", 
    "departmentId": "3", 
    "name": "Baby Girl Velour Tunic & Snowflake Legging Set", 
    "description": "The pretty set", 
    "url": "http://whatever.whatever.com/files/whatever.tif" 
} 

をあなたがこのモデルを必要とする:

public class Product 
{ 
    public string productId { get; set; } 
    public string brandId { get; set; } 
    public string departmentId { get; set; } 
    public string name { get; set; } 
    public string description { get; set; } 
    public string url { get; set; } 
} 

public class Data 
{ 
    public string dailyDealId { get; set; } 
    public string discountPercentage { get; set; } 
    public Product product { get; set; } 
} 
関連する問題