Member 13703567 Ответов: 2

Проблема форматирования JSON?


Я пытаюсь заполнить html-таблицу данными JSON. Мне предоставили данные JSON, и я не могу определить, почему они не заполняются, но подозреваю, что JSON может быть неправильно отформатирован. Когда я использую другие примеры данных, это работает, а затем, когда я саб в JSON, который мне предоставили, он не работает. Я попытался скопировать JSON в файл на моем прямом сервере, связавшись с тем, что мне было предоставлено (здесь: ) [^] и вставляя его на myjson.com и переформатирование данных JSON.

Вот мой код:

<script>

$(function() {

var entries = [];
var dmJSON = "https://api.myjson.com/bins/6sjud?callback=?";
$.getJSON( dmJSON, function(data) {
   $.each(data.entries, function(i, f) {
      var tblRow = "<tr>" + "<td>" + f.rank + "</td>" + "<td>" + f.name + "</td>" + "<td>" + f.march_rank + "</td>" + "<td> " + f.april_rank + "</td>" +  "<td>" + f.may_rank + "</td>" + f.personal_volume + "</td>" + f.team_volume + "</td>" + "</tr>"
       $(tblRow).appendTo("#incentive tbody");
 });

});

});
</script>


<div class="wrapper">
<div class="profile">
<table id= "incentive" border="1">
<thead>
        <th>Rank</th>
        <th>Name</th>
        <th>March</th>
        <th>April</th>
        <th>May</th>
        <th>Highest Rank</th>
        <th>Personal Volume</th>
        <th>Team Volume</th>
    </thead>
  <tbody>

   </tbody>
</table>

</div>
</div>


Есть идеи, где я могу ошибиться?

Что я уже пробовал:

Я попытался переформатировать JSON и поместить его в новый файл на моем собственном сервере, но безрезультатно.

2 Ответов

Рейтинг:
2

Richard Deeming

Этот формат прекрасно сформированные:

{
  "affiliate": [
    {
      "rank": 1,
      "name": "Sally",
      "march_rank": "Gold",
      "april_rank": "Silver",
      "may_rank": "Silver",
      "highest_rank": "Silver",
      "team_volume": 12345
    },
    {
      "rank": 2,
      "name": "Zelda",
      "march_rank": "Gold",
      "april_rank": "Bronze",
      "may_rank": "Silver",
      "highest_rank": "Gold",
      "team_volume": 12345
    }
  ]
}
Проблема в том, что вы пытаетесь повторить entries собственность, которой не существует:
$.each(data.entries, ...

Вам нужно повторить все сначала. affiliate вместо этого собственность.

Вам нужно будет удалить ?callback=?" строка запроса, которая сбивает с толку jQuery.

Вы также пропускаете пару открытий <td>s, и одна колонка. И нет никакого ответа. personal_volume свойство в JSON.

Демонстрация[^]


Рейтинг:
2

Bryian Tan

Я думаю, что это формат, он должен возвращать [{...}] вместо {...}

Вот вам пример.

CP_JSON_formatting_issue - JSFiddle[^]