2015-04-16 4 views
1

Я использую вложенный файл JSON в своей визуализации данных, используя d3.js. Я имел в виду предыдущий Smilar Queastion. Я создал jsfiddle ответа на вопрос, чтобы убедиться, что все работает. Но я смущен, почему код не работает. У меня аналогичная проблема в моем проекте. Как я могу это решить. Вот пример кода, который я использую для печати данных в виде спискаВложенный JSON не работает в d3.js

d3.select("body").append("ul").selectAll("li") 
.data(data).enter().append("li").each(function() { 
    var li = d3.select(this); 
    li.append("p") 
     .text(function(d) { return d.date; }); 
    li.append("ul").selectAll("li") 
     .data(function(d) { return d.hours; }) // second level data-join 
    .enter().append("li") 
     .text(function(d) { return d.hour + ": " + d.hits; }); 
}); 
+0

Решено. Замените внешние кронштейны на третью скобку. Тогда он отлично работает –

ответ

0

Похоже, что JSON был сформирован неправильно. Я установил JSON как это -

var data=[{ "date": "20120927", 
    "hours": [ 
      { "hour": 0, "hits": 823896 }, 
      { "hour": 1, "hits": 654335 }, 
      { "hour": 2, "hits": 548812 }, 
      { "hour": 3, "hits": 512863 }, 
      { "hour": 4, "hits": 500639 } 
      ], 
    "totalHits": "32,870,234", 
    "maxHits": "2,119,767", 
    "maxHour": 12, 
    "minHits": "553,821", 
    "minHour": 3 }, 
{ "date": "20120928", 
    "hours": [ 
      { "hour": 0, "hits": 1235923 }, 
      { "hour": 1, "hits": 654335 }, 
      { "hour": 2, "hits": 1103849 }, 
      { "hour": 3, "hits": 512863 }, 
      { "hour": 4, "hits": 488506 } 
      ], 
    "totalHits": "32,870,234", 
    "maxHits": "2,119,767", 
    "maxHour": 12, 
    "minHits": "553,821", 
     "minHour": 3 }]; 

Кроме того, я думаю, была проблема с d3.js библиотеки HTTP не загружен. Я добавил внешнюю ссылку HTTPS и работает.

Вот рабочая версия вашей скрипки - https://jsfiddle.net/ferlin_husky/wzuvob6m/

+0

Какая ошибка в моем json. Разве это не двойные цитаты? –

+1

Yap получил его. Спасибо за добавление внешнего ресурса. Мой код также работает с двойными котировками. Вот обновленная скрипка. https://jsfiddle.net/pbf1u640/6/ –

+0

Двойные кавычки в порядке. Я обновил свой ответ, чтобы было более ясно. –

Смежные вопросы