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

使用jQuery从PHP Curl返回的JSON数据中提取多值子数组

用jQuery提取RajaOngkir JSON中的子数组

嘿,这事儿我熟!我来教你怎么用jQuery从你拿到的RajaOngkir JSON数据里提取包含多个值的子数组~

首先,先明确你拿到的JSON数据结构:从你给的示例来看,完整响应里rajaongkir对象下应该有一个results数组(这就是包含多个快递报价选项的子数组,毕竟你指定了courier: "all")。

步骤1:让JSON数据能被前端访问

你已经用PHP Curl拿到了JSON,那可以直接把它输出成前端能识别的变量,比如在PHP页面里写:

<?php
// 假设$jsonData是你用Curl获取到的完整JSON字符串
$jsonData = '{"rajaongkir": {...}}';
?>
<script>
// 把PHP的JSON数据转成JS变量
var shippingResponse = <?php echo $jsonData; ?>;
</script>

步骤2:提取目标子数组

用jQuery(其实原生JS也能搞定,但你要jQuery的话)直接访问对应的数组:

// 提取快递报价的子数组
var courierOptions = shippingResponse.rajaongkir.results;

// 先确认API请求是否成功
if (shippingResponse.rajaongkir.status.code === 200) {
    console.log('数据获取成功!', courierOptions);
} else {
    console.error('API返回错误:', shippingResponse.rajaongkir.status.description);
}

步骤3:遍历并使用子数组数据

拿到子数组后,你可以用jQuery的$.each()遍历它,把数据渲染到页面或者做其他处理:

// 遍历每个快递公司的选项
$.each(courierOptions, function(index, courier) {
    console.log('快递公司:' + courier.name);
    
    // 每个快递公司下还有costs数组,包含不同服务的报价
    $.each(courier.costs, function(costIndex, costItem) {
        console.log('服务类型:' + costItem.service);
        console.log('报价:Rp' + costItem.cost[0].value);
        console.log('预计送达时间:' + costItem.cost[0].etd + ' 天');
    });
});

// 把数据渲染到页面的示例
var resultHtml = '';
$.each(courierOptions, function(i, courier) {
    resultHtml += `<div class="courier-card">
        <h4>${courier.name}</h4>
        <ul>`;
    $.each(courier.costs, function(j, cost) {
        resultHtml += `<li>${cost.service} - Rp${cost.cost[0].value} (${cost.cost[0].etd} 天)</li>`;
    });
    resultHtml += `</ul></div>`;
});

// 把渲染好的内容放到页面容器里
$('#shipping-results').html(resultHtml);

如果你直接用jQuery AJAX请求PHP接口

如果你的PHP文件是单独处理Curl请求并返回JSON,那可以直接用AJAX获取数据:

$.ajax({
    url: 'your-shipping-api.php', // 你的PHP文件地址
    type: 'GET',
    dataType: 'json',
    success: function(response) {
        if (response.rajaongkir.status.code === 200) {
            var courierOptions = response.rajaongkir.results;
            // 这里执行上面的遍历/渲染逻辑
        } else {
            alert('获取快递报价失败:' + response.rajaongkir.status.description);
        }
    },
    error: function(xhr, status, err) {
        console.error('请求出错:', err);
    }
});

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.25 03:58:56