You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

AngularJS中$http.get获取数据时嵌套JSON数组响应异常问题

问题原因及修复方案

原因分析

你遇到的嵌套JSON数组被篡改的情况,本质是AngularJS的$http服务解析响应时出现了异常,把原本的数组转换成了{type: "json", value: "..."}的结构,常见触发原因有两个:

  • 服务器响应头配置错误:如果服务器返回的响应头不是application/json(比如是text/plain或text/html),Angular默认的JSON解析器不会自动处理响应内容,后续默认转换逻辑会把JSON字符串包装成这种type-value结构。
  • 响应转换逻辑被自定义修改:如果项目里全局或针对该请求修改了$http的transformResponse函数,可能对JSON内容做了额外的包裹处理。

修复方案

方案1:修正服务器响应头(优先推荐)

修改服务器端代码,确保./getData接口返回时,响应头设置为Content-Type: application/json。这样Angular的$http会自动识别并解析JSON内容,直接得到预期的嵌套数组结构。

方案2:手动指定响应转换逻辑

如果无法修改服务器配置,可以在请求时手动添加转换逻辑,强制解析JSON:

$http.get("./getData", {
  transformResponse: function(data) {
    // 手动将响应字符串解析为JSON对象
    return angular.fromJson(data);
  }
}).then((response) => {
  console.log(response);
  // 此时response.data.jdata1[0].othertotal1会是预期的数组格式
});

方案3:检查全局$http配置

排查项目中是否有全局修改$httpProvider.defaults.transformResponse的代码,如果存在不必要的转换逻辑,调整或移除该部分,恢复默认的JSON解析行为。

内容的提问来源于stack exchange,提问作者user3763278

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.19 17:25:52