Angular 代码在以前正确读取 JSON 数组时没有正确读取 JSON 数组

Angular code is not reading a JSON array correctly when it did previously

提问人:Ian Hannah 提问时间:11/16/2023 最后编辑:Ian Hannah 更新时间:11/16/2023 访问量:38

问:

我们有一个返回 JSON 数组的服务,如下所示:

{ "data" : [{ "time" : "2023-11-16T18:55:00.0000000Z", "value" : "638356352165652595" }] }

我们的 angular 代码有这个方法来调用它:

dataArrayJson: {
    method: 'GET', params: {endpoint: 'Data', p: 'CalcJson'},
    isArray: true, withCredentials: true, cancellable: true
}

这是从以下代码调用的:

   self.activePipelineRequest = mapService.dataArrayJson(
      {
        exp: exp,
      },
      function (response) {
        if (self.pipelinePhase) {
          self.pipelinePhase.complete = true;
          self.pipelinePhase.sample =
            response.length > 0 ? response[0].time : null;
          self.pipelinePhase.sampleId =
            response.length > 0 ? response[0].value : null;

          //self.invalidateFromPhase(self.pipelinePhase.nextPhase);
          self.processPipeline();
        }
      },
      function (err) {},
    );

我们现在收到以下错误:

错误:[$resource:badcfg] dataArrayJson https://map-client.meniscus.co.uk/bower_components/angular/angular.js:138:12 https://errors.angularjs.org/1.8.3/$resource/badcfg?p0=array&p1=object&p2=GET&p3=https%3A%2F%2Fmap-rainuk-dev.test.co.uk%2FMap%2FData%2FCalcJson

这种情况只发生在过去几个月。angular 代码或服务都没有改变,但现在 JSON 的解析不起作用。

我已经更详细地研究了这一点。如果我返回此 JSON:

[
    {
        "time": "2023-11-16T17:55:00.0000000Z",
        "value": "638356385254612445"
    }
]

它有效,这是一个有效的 JSON 数组。

但是,如果我返回这个:

{
    "data": [
        {
            "time": "2023-11-16T17:55:00.0000000Z",
            "value": "638356385254612445"
        }
    ]
}

我在 angular 代码中收到错误。这也是有效的 JSON。

有谁知道为什么第二个JSON字符串无效?

json angularjs

评论


答: 暂无答案