【问题标题】:data won't appear with getjson (undefined) [closed]数据不会与 getjson 一起出现(未定义)[关闭]
【发布时间】:2021-02-01 08:38:24
【问题描述】:

api 数据显示为未定义,我不明白为什么。 这是我的 HTML 代码:

$(document).ready(function() {
  $.getJSON("https://data.iledefrance.fr/api/records/1.0/search/?dataset=repertoire-bibliotheques&q=&refine.typeinst=Mus%C3%A9e", function(json) {
    console.log(json.records.fields);
    console.log(json);

    var recordid = '';
    $.each(json, function(key, value) {
      recordid += '<tr>';
      recordid += '<td>' + value.nometablissement + '</td>';
      recordid += '<td>' + value.telephone + '</td>';
      recordid += '<td>' + value.codepostal + '</td>';
      recordid += '<td>' + value.commune + '</td>';
      recordid += '</tr>';
    });
    $('#recordid_table').append(recordid);
  })
})
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<div class="container">
  <div class="table-responsive">
    <h1>Musées Parisiens</h1>
    <br />
    <table class="table table-bordered table-striped" id="recordid_table">
      <tr>
        <th>Nom de l'établissemnt</th>
        <th>Numéro de Téléphone</th>
        <th>Code Postal</th>
        <th>Commune</th>
      </tr>
    </table>
  </div>
</div>

这是我的 JS 代码:

我不明白为什么数据在表中显示为未定义。这是我的数据集,如果它可以帮助回答我的问题:https://data.iledefrance.fr/api/records/1.0/search/?dataset=repertoire-bibliotheques&q=&refine.typeinst=Mus%C3%A9e 感谢您的帮助!

【问题讨论】:

  • 您必须更仔细地阅读数据路径。 $.each 仅读取对象的最顶层,因此回调中的value 获取诸如nhits &lt;Int&gt;parameters &lt;Object&gt;records &lt;Array&gt; 之类的值...可以找到nometablissement value.records[0].fields.nometablissement,但它也出现在records 的其他索引中。

标签: javascript html jquery getjson


【解决方案1】:

您的数据结构比您处理它的方式更深。

您需要循环的数组是 json.records,每条记录都有一个 fields 对象,其中您想要的属性是

$(document).ready(function() {
  $.getJSON("https://data.iledefrance.fr/api/records/1.0/search/?dataset=repertoire-bibliotheques&q=&refine.typeinst=Mus%C3%A9e", function(json) {
    var recordid = '';
    $.each(json.records, function(key, value) {
      var fields = value.fields;
      recordid += '<tr>';
      recordid += '<td>' + fields.nometablissement + '</td>';
      recordid += '<td>' + fields.telephone + '</td>';
      recordid += '<td>' + fields.codepostal + '</td>';
      recordid += '<td>' + fields.commune + '</td>';
      recordid += '</tr>';
    });
    $('#recordid_table').append(recordid);
  })
})
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<div class="container">
  <div class="table-responsive">
    <h1>Musées Parisiens</h1>
    <br />
    <table class="table table-bordered table-striped" id="recordid_table">
      <tr>
        <th>Nom de l'établissemnt</th>
        <th>Numéro de Téléphone</th>
        <th>Code Postal</th>
        <th>Commune</th>
      </tr>
    </table>
  </div>
</div>

【讨论】:

    猜你喜欢
    • 2016-12-06
    • 1970-01-01
    • 2014-09-10
    • 1970-01-01
    • 2018-01-19
    • 2020-06-10
    • 2013-04-30
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多