我是一个JSON新手。我有一个JSON文件,我想从中提取数据,但我似乎找不到一种方法。我在网上搜索过,但我找不到任何答案,或者我只是在错误的地方寻找。
下面是我的JSON数据:
{"data":
{"cars":
{"total":117,
"results":[
{"id":"779579"},
{"id":"952209"},
{"id":"1103285"},
{"id":"1157321"},
{"id":"1372321"},
{"id":"1533192"},
{"id":"1630240"},
{"id":"2061824"},
{"id":"2312383"},
{"id":"2353755"},
{"id":"2796716"},
{"id":"2811260"},
{"id":"2824839"},
{"id":"2961828"},
{"id":"3315226"},
{"id":"3586555"},
{"id":"3668182"},
{"id":"3986886"},
{"id":"3989623"},
{"id":"3998581"},
{"id":"4021057"},
{"id":"4038880"},
{"id":"4308809"},
{"id":"4325718"},
{"id":"4352725"},
{"id":"4360349"},
{"id":"4628661"},
{"id":"4863093"},
{"id":"4940146"},
{"id":"4947395"},
{"id":"5157781"},
{"id":"5794466"},
{"id":"6134469"},
{"id":"6157337"},
{"id":"6307352"},
{"id":"6727975"},
{"id":"6783794"},
{"id":"6831800"},
{"id":"6960771"},
{"id":"7159286"},
{"id":"7211880"},
{"id":"7212277"},
{"id":"7217410"},
{"id":"7264660"},
{"id":"7406984"},
{"id":"7893798"},
{"id":"7948268"},
{"id":"8047751"},
{"id":"8271106"},
{"id":"8346001"},
{"id":"8352176"},
{"id":"8485193"},
{"id":"8746468"},
{"id":"8801718"},
{"id":"9104008"},
{"id":"9494179"},
{"id":"9588599"},
{"id":"9717878"},
{"id":"9845048"},
{"id":"9891941"},
{"id":"9943516"},
{"id":"10002374"},
{"id":"10213949"},
{"id":"10326370"},
{"id":"10499431"},
{"id":"10518069"},
{"id":"10538037"},
{"id":"10589618"},
{"id":"10602337"},
{"id":"10723171"},
{"id":"10724725"},
{"id":"10746729"},
{"id":"10751575"},
{"id":"10752559"},
{"id":"10852235"},
{"id":"10867573"},
{"id":"10877115"},
{"id":"10893349"},
{"id":"10988880"},
{"id":"10993485"},
{"id":"11026957"},
{"id":"11111205"},
{"id":"11122085"},
{"id":"11150052"},
{"id":"11251748"},
{"id":"11259887"},
{"id":"11270391"},
{"id":"11291731"},
{"id":"11303142"},
{"id":"11303143"},
{"id":"11308615"},
{"id":"11313379"},
{"id":"11334337"},
{"id":"11338119"},
{"id":"11338290"},
{"id":"11339650"},
{"id":"11347202"},
{"id":"11359983"},
{"id":"11390048"},
{"id":"11399541"}]}}}
我想提取所有的id并把它们放在一个数组中。我试过JToken,但它只能得到100个数据(最多到元素[99]),因为任何超过99的数据都会给予我一个错误。我试过使用for循环。
这是我得到的错误,如果超过99:
参数超出范围异常:索引超出范围。必须为非负数且小于集合的大小。
参数名称:索引
2条答案
按热度按时间bqucvtff1#
您的问题是
data.cars.total
的值不是您所认为的值。在所示的JSON中只有100个id,尽管data.cars.total
等于117。要将这100个id放入数组中,您可以将SelectTokens()
与LINQ的ToArray()
沿着使用,如下所示:其中
[*]
是JSONPath通配符运算符,用于选择所有数组元素。这里只是猜测,但您的JSON可能反映了paged response,其中
data.cars.total
是id的总数,而不是当前页面中返回的数量(限制为100)。演示小提琴here。
ymdaylpp2#
感谢大家指出数组的内容只有100而不是117。这就解决了问题。Json文件没有返回我所期望的确切数据数(117)。结果表明,我的代码沿着工作正常,问题出在Json文件上。