C# JSON c异常超出范围#

C# JSON c异常超出范围#,c#,json,C#,Json,我正在从url请求获取JSON数据 我可以检索如下所示的JSON数组: { "ShipmentId": "GDEV11101313", "BizId": "GHU", "BizSalesOrder": null, "Status": "00", "OrderType": "S01", "OrderClass": "GHUE", "CustomerId": "BARNEYSINC", "BizCustomerId": null, "CustomerGro

我正在从url请求获取JSON数据

我可以检索如下所示的JSON数组:

    {
  "ShipmentId": "GDEV11101313",
  "BizId": "GHU",
  "BizSalesOrder": null,
  "Status": "00",
  "OrderType": "S01",
  "OrderClass": "GHUE",
  "CustomerId": "BARNEYSINC",
  "BizCustomerId": null,
  "CustomerGroup": null,
  "CustomerName": "BARNEY'S, INC.",
  "ShippingAddressId": "ADD1",
  "InvoiceAddressId": "ADD1",
  "Site": "0001",
  "Warehouse": "STULTS",
  "OwnerId": "GHU",
  "StockStatus": "00",
  "SalesOrder": "000000000866",
  "Prime": "GDEV11101313",
  "PriorityAllocation": "03",
  "PriorityDespatch": "03",
  "CustomerRef": "1171995",
  "ConsigmentId": "GDEV11101313",
  "PickGroupId": null,
  "ASNNumber": null,
  "DNoteNumber": null,
  "InvoiceNumber": null,
  "ManifestNumber": null,
  "POD": null,
  "ShippingMethod": null,
  "Region": null,
  "CarrierId": null,
  "CarrierTrackingNumber": null,
  "Route": null,
  "LoadId": null,
  "LoadSequence": 0.0,
  "PackStation": null,
  "ShippingLane": "GO",
  "ReturnReason": null,
  "QC": null,
  "Lines": 1.0,
  "LineQty": 15.0,
  "StUQty": 0.0,
  "Volume": 0.0,
  "Weight": 0.0,
  "ActualWeight": 0.0,
  "TaskCountNew": 0.0,
  "TaskCountCurrent": 0.0,
  "TaskCountActioned": 0.0,
  "TimeToPick": 0.0,
  "TimeToPack": 0.0,
  "TimeToCheck": 0.0,
  "TimeToLoad": 0.0,
  "TimeOther": 0.0,
  "TimeToDeliver": 0.0,
  "InvoiceInd": null,
  "Currency": null,
  "LineValue": null,
  "Discount": null,
  "Packing": null,
  "Freight": null,
  "Insurance": null,
  "Charges": null,
  "Allowances": null,
  "Tax": null,
  "InvoiceValue": null,
  "ShortageCode": null,
  "Variance": null,
  "CutOffInd": "0",
  "Supervisor": null,
  "Reason": null,
  "DateCreated": "2016-08-02T06:56:05",
  "DateSuspended": null,
  "DateClosed": null,
  "DateDueOut": "2016-08-02T06:56:05",
  "DateShipment": "2016-08-02T06:56:05",
  "DateDeliverd": null,
  "DateInvoice": null,
  "ASNInd": null,
  "OverdueInd": "0",
  "Stage": "00",
  "MaintInd": "W",
  "ShipmentLines": [
    {
      "ShipmentId": "GDEV11101313",
      "Line": "GBZTH0FQH6",
      "Level": "00",
      "SKUId": "GW01EURPMIKH",
      "BizSKU": null,
      "UnitOfMeasure": "EA",
      "LineOwner": null,
      "LineStockStatus": null,
      "QtyOrdered": 15.0,
      "QtyRequired": 15.0,
      "QtyAllocated": 0.0,
      "QtyTasked": 0.0,
      "QtyPicked": 0.0,
      "QtyShipped": 0.0,
      "QtyDelivered": 0.0,
      "QtyDueOut": 15.0,
      "Price": 0.0,
      "Discount": null,
      "TaxRate": null,
      "SOLineId": 1.0,
      "ReturnReason": null,
      "QC": null,
      "Shortage": null,
      "Variance": null,
      "BOInd": "0",
      "ConsignmentId": "GDEV11101313",
      "PickGroupId": null,
      "SiteId": "0001",
      "Warehouse": "STULTS",
      "BizId": "GHU",
      "OwnerId": "GHU",
      "StockStatus": "00",
      "DateShipment": "2016-08-02T06:56:05",
      "AttachmentInd": "0",
      "SpecialConditionInd": "0",
      "Stage": "00"
    }
  ],
  "ShipAddress": [
    {
      "Table": "SHH",
      "ShipmentId": "GDEV11101313",
      "AddressId": "ADD1",
      "Name": "LYNDHURST 1",
      "Line1": "1201 Valley Brook Ave",
      "Line2": null,
      "Line3": null,
      "City": "Lyndhurst",
      "State": "NJ",
      "Postcode": "07071",
      "Country": "US",
      "Region": "NJ",
      "Latitude": 0.0,
      "Longitude": 0.0
    }
  ],
  "ShipContacts": [],
  "ShipmentDespatch": []
}
我当时大约有2000多个阵列停机。我可以在JSON字符串的根中显示任何内容的值。但是,我得到的{“索引超出范围。必须为非负且小于集合的大小。\r\n参数名称:索引”}错误。如果我设置$top=10,我可以查看数据,没有问题。任何比这更重要的事情我都会出错。这是我的密码

static void Main(string[] args)
    {
        using (WebClient webClient = new System.Net.WebClient())
        {
            WebClient n = new WebClient();
            n.Headers["Authorization"] = "Basic " + Convert.ToBase64String(Encoding.Default.GetBytes("username:password"));
            var ShipQuery = n.DownloadString(@"api/Shipments?$top=100");

            dynamic ShipObj = (JArray)JsonConvert.DeserializeObject(ShipQuery);


            foreach (dynamic item in ShipObj)

            {

                string SHAName = item.ShipAddress[0]["Name"].ToString();
                Console.WriteLine(SHAName);
            }
        }

请帮忙

我建议您获取实际的json数据并查看一下,听起来您得到了一些意想不到的东西。也许是一个空荡荡的船坞。已经满了。另外,我调用JSON的API要求我查询的字段有一个值?导致索引无法正确填充?为什么不转储u get字符串,看看您的sir是否100%正确。有一批货物埋在里面,导致了问题的发生。由于某种原因,它没有数据。非常感谢您的帮助和快速回复!!我建议您获取实际的json数据并查看一下,听起来您得到了一些意想不到的东西。也许是一个空荡荡的船坞。已经满了。另外,我调用JSON的API要求我查询的字段有一个值?导致索引无法正确填充?为什么不转储u get字符串,看看您的sir是否100%正确。有一批货物埋在里面,导致了问题的发生。由于某种原因,它没有数据。非常感谢您的帮助和快速回复!!