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

如何解析Laravel接口JSON,获取CostingItem的UnitPrice.Amount

解决Laravel Ajax响应中获取嵌套特殊属性的问题

我来帮你搞定这个问题!你现在能打印出每个CostingItem对象,但没法正确拿到UnitPrice.Amount,核心原因是这个值嵌套在带特殊符号的@attributes属性里,直接用点语法访问会出问题。

问题分析

看你提供的JSON结构,每个CostingItem里的UnitPrice下面是一个名为@attributes的对象,里面才包含Amount字段。由于@attributes的键名包含@符号,属于JavaScript中的非标准标识符,不能直接用.来访问(比如v.UnitPrice.@attributes会直接报错)。

修改后的Ajax脚本

把你的代码改成这样就能正确获取值了:

$.ajax({
    type: "POST",
    url: "/public/fetch-bambini",
    data: { id: d, tipologia: tipologia, bambini: bambini, neonati: neonati, adulti: adulti },
    success: function(response) {
        $.each(response.CostingItem, function(k, v) {
            // 使用方括号语法访问带特殊符号的属性
            const unitPriceAmount = v.UnitPrice["@attributes"].Amount;
            console.log(`第${k+1}个CostingItem的UnitPrice金额:`, unitPriceAmount);
        });
    }
});

关键说明

  • 对于包含特殊字符(比如@、-、空格)的对象属性,必须使用方括号语法obj["属性名"]来访问,不能用.语法。
  • 如果你不确定属性结构,可以先打印console.log(v.UnitPrice)来确认对象的具体结构,避免拼写或者层级错误。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.28 09:28:14