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

如何从指定JSON接口获取订单对象中的products数组?

解决方法

首先先确认接口返回的订单对象里确实包含products数组——你可以查看console.log(tilaus)的输出,检查每个订单对象是否存在这个属性。如果接口确实返回了products,只需要修改代码来渲染这部分内容即可,以下是调整后的代码:

fetch('https://www.cc.puv.fi/~asa/cgi-bin/fetchOrders.py')
  .then(res => res.json()) // 直接用res.json()处理JSON响应,替代text+parse的组合
  .then(tilaukset => tulostus(tilaukset))

function tulostus(tilaukset) {
    console.log(tilaukset);

    let a = "<table><tr><th>订单ID</th><th>客户ID</th><th>客户名称</th><th>账单地址</th><th>送货地址</th><th>送货日期</th><th>负责销售</th><th>备注</th><th>总价</th><th>商品信息</th></tr>";
    for(let i = 0; i < tilaukset.length; i++) {
        let tilaus = tilaukset[i];
        console.log(tilaus);
        
        // 处理订单下的商品列表
        let productsHtml = '';
        if (tilaus.products && tilaus.products.length > 0) {
            productsHtml += '<ul>';
            tilaus.products.forEach(product => {
                // 这里的属性名(productid、name、quantity、price)请根据接口实际返回调整
                productsHtml += `<li>${product.productid} - ${product.name}:${product.quantity} 件 × ${product.price} 元</li>`;
            });
            productsHtml += '</ul>';
        } else {
            productsHtml = '无关联商品';
        }

        a += `<tr><td>${tilaus.orderid}</td><td>${tilaus.customerid}</td><td>${tilaus.customer}</td><td>${tilaus.invaddr}</td><td>${tilaus.delivaddr}</td><td>${tilaus.deliverydate}</td><td>${tilaus.respsalesperson}</td><td>${tilaus.comment || ''}</td><td>${tilaus.totalprice}</td><td>${productsHtml}</td></tr>`;
    }   
    console.log(a);
    document.getElementById('info').innerHTML = a+'</table>';
}

关键调整说明

  • 用res.json()替代了原代码中res.text() + JSON.parse()的写法,这是Fetch API处理JSON响应的标准方式,更简洁高效。
  • 新增了“商品信息”列,用来展示每个订单对应的products数组内容。
  • 增加了对products数组的判空逻辑:如果存在商品数据,就用无序列表展示每个商品的详情;如果没有商品,显示提示文本。

如果检查后发现接口根本没有返回products数组,那你需要确认该接口是否支持返回包含商品的完整订单数据——可能需要查看接口文档,或者联系后端开发确认是否需要传递额外参数来获取商品信息。

内容的提问来源于stack exchange,提问作者Lakeri Kenkä

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.10 10:20:31