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

如何用jQuery解析JSON数据?AJAX请求无报错但无法显示数据

排查你的jQuery AJAX问题

咱们一步步拆解问题,你的代码里有几个关键错误导致数据无法正常展示:

1. JSON解析的参数写错了

你这里的代码:

var obj = jQuery.parseJSON('result');

犯了个低级错误——你把字符串'result'传给了解析方法,而不是AJAX请求返回的result变量!这会让parseJSON尝试解析字符串"result"(这根本不是合法的JSON),自然得不到正确的对象。

正确的写法有两种:

  • 要么直接用变量解析:
    var obj = jQuery.parseJSON(result);
    
  • 要么更省心,给AJAX请求加上dataType: 'json',让jQuery自动帮你把响应解析成JSON对象,省掉手动解析的步骤:
    $.ajax({
      url: 'inc/show-date-delv.php',
      data: {"id": id},
      type: 'post',
      dataType: 'json', // 新增这个配置
      success: function(result){
        // 这里的result已经是解析好的JSON对象了,不用再调用parseJSON
        // 后续处理逻辑...
      }
    });
    

2. 返回的数据结构和你的访问方式不匹配

从你打印的结果来看,服务器返回的是一个以数字为键的对象集合,每个键对应的子对象才包含date属性。你现在直接写obj.date肯定找不到值——因为obj本身没有date这个属性,它的子对象才有。

如果想把所有日期都展示出来,可以遍历这个对象:

success: function(result){
  var targetDiv = $(".dataandtime .date div:last-child").empty();
  // 遍历每个子对象,把date添加到目标div里
  $.each(result, function(key, item){
    targetDiv.append('<span>' + item.date + '</span>'); // 用你需要的标签包裹日期
  });
}

如果只需要某个特定项的日期(比如键为"4"的那个),可以直接访问:

success: function(result){
  $(".dataandtime .date div:last-child").empty().append(result["4"].date);
}

3. 建议添加错误回调方便排查问题

为了以后能更快定位问题,建议给AJAX请求加上error回调,这样如果请求失败、解析出错,你能在控制台看到具体的错误信息:

$.ajax({
  url: 'inc/show-date-delv.php',
  data: {"id": id},
  type: 'post',
  dataType: 'json',
  success: function(result){
    // 成功处理逻辑
  },
  error: function(xhr, status, error){
    console.log("AJAX请求出错:", status, error);
    console.log("服务器返回内容:", xhr.responseText);
  }
});

把这些修改之后,你的数据应该就能正常显示在目标div里了。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.13 07:37:57