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

使用Yelp API时JSON解析异常:部分字段返回undefined

Yelp API JSON解析问题解决

问题根源

  1. JSON结构层级错误:后端返回的Yelp响应是包含businesses数组的对象,你直接从根对象取image_url、display_phone等字段,但这些字段实际在businesses数组的第一个商家对象里。
  2. 变量引用错误:拼接HTML时,你错误使用obj.imgmain这类写法,imgmain是你定义的变量,直接用变量名即可,不需要加obj.前缀。
  3. 地址字段嵌套更深:address1不在商家对象直接层级下,而是嵌套在location对象中。

修正代码

$(document).ready(function() {
    $(document).on("click", "#search-button", function() {
        var q = escape($('#term').val());
        var start = 0;
        var page = 1;

        $.ajax({
            type: 'GET',
            url: 'api/yelp.php',
            data: { q: q, s: start, p: page },
            success: function(data) {
                var response = JSON.parse(data);
                // 取第一个商家数据,兜底空对象避免报错
                var business = response.businesses?.length ? response.businesses[0] : {};

                var name = business.name || '暂无名称';
                var imgmain = business.image_url || '';
                var phone = business.phone || '暂无电话';
                var disphone = business.display_phone || '暂无显示电话';
                var loc1 = business.location?.address1 || '暂无地址';

                $('#search-out').html(
                    `${name}</br>` +
                    `${imgmain ? `<img src="${imgmain}"/>` : ''}</br>` +
                    `${phone}</br>` +
                    `${disphone}</br>` +
                    `${loc1}`
                );
            }
        });
    });
});

额外建议

  • 用$.getJSON替代$.ajax,自动处理JSON解析,省去JSON.parse步骤
  • 增加无结果判断,比如当businesses为空时,显示“未找到相关商家”
  • 使用模板字符串(`)拼接HTML,可读性更强

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.06 00:25:32