【问题标题】:How to read data from JSON object如何从 JSON 对象中读取数据
【发布时间】:2011-01-30 18:03:57
【问题描述】:

我有一个 PHP 脚本,它从 mysql 中选择一些数据并将其放入以下行:

$json_arr[] = array ('date'=>$human_date,'weight'=>$data['weight']);

当我使用 PHP4 运行服务器时,我正在使用 Services_JSON (http://pear.php.net/pepr/pepr-proposal-show.php?id=198) 脚本对数据进行 JSON 化:

$json = new Services_JSON();
echo $json->encode($json_arr);

在 JS 文件中我想显示所有的权重和日期:

$.getJSON('ajax/getweights.php', {userid: userid}, function(data) { 

  $.each(data, function(k, v) {
    alert(v + ': ' v);
  });
});

当我运行脚本时,我没有得到想要的结果,例如 2011-01-10:90,2011-01-15:92, 2011-01-18:89。

我对 jQuery 很陌生,我一直在网上寻找答案,我试图弄清楚如何阅读这些数据 - 我希望有人能帮助我:)

【问题讨论】:

    标签: php loops jquery getjson


    【解决方案1】:

    假设服务器以如下格式发送数据:

    [ { date: '2011-01-10:90', weight: '1' }, 
      { date: '2011-01-15:92', weight: '2' }, 
      ...
    ]
    

    你可以:

    $.each(data, function(k, v) {
        alert('date: ' + v.date + ' | weight: ' + v.weight);
    });
    

    【讨论】:

    • 啊,我正在寻找一种方法来结束这个问题!谢谢你
    【解决方案2】:

    实现这一目标的更简单方法:

    $json_arr[] = array(
      'date' => $human_date,
      'weight' => $data['weight']
    );
    
    $json = new Services_JSON();
    echo 'processData(' . $json->encode($json_arr) . ')';
    

    还有 JavaScript:

    // Callback function which processes the data
    function processData(data) {
      for(var i = 0; i < data.length; i++)
        alert(data[i].date + ', ' + data[i].weight);
    }
    
    // Here we import the data
    var s = document.createElement('script');
    s.src = 'ajax/getweights.php';
    document.body.appendChild(s);
    

    【讨论】:

      猜你喜欢
      • 2018-01-24
      • 1970-01-01
      • 1970-01-01
      • 2018-11-17
      • 2014-01-09
      • 1970-01-01
      • 1970-01-01
      • 2011-11-05
      • 1970-01-01
      相关资源
      最近更新 更多