2016-03-10 4 views
3

Я пытаюсь создать веб-проект, в котором я получаю детали в формате JSON, например:как загрузить JSon объект вместо JSON файла

{ 
    "file_id": 333, 
    "t": "2016-03-08 12:00:56" 
} 

Я пытался показать выход в d3 расслоения плотного бара диаграмма. Проблема, с которой я столкнулся, - это код, который у меня есть, работает для JSON-файла, но не для десериализованного объекта из JSON. Может ли кто-нибудь помочь мне в этом?

Часть рабочего сценария для JSON-файла заключается в следующем:

d3.json("FILENAME", function(error, data) { 
    data = JSON.parse(data); 
    x.domain(data.map(function(d) { return d.letter })); 
    y.domain([0, d3.max(data, function(d) { return d.frequency })]); 

Если изменить имя файла объекта его не работает.

+0

ERM ... Как это Java? – fge

+3

читайте документацию здесь https://github.com/mbostock/d3/wiki/Requests ясно заявляет, что вы должны указать путь к файлу, функция не сделана, чтобы взять объект –

+0

ys, но как я могу продолжайте, если у меня есть json-объект – monic

ответ

9

быть библиотека JS D3 работает с объектами JS (наряду с другими типами данных JS) только, d3.json - это всего лишь способ загрузки объекта из внешнего файла. Так что, если вам не нужно загружать данные из внешнего файла, то не использовать d3.json

//d3.json("FILENAME", function(error, data) { 
    //data = JSON.parse(data); 
    var data = { 
     "file_id": 333, 
     "t": "2016-03-08 12:00:56" 
    }; //your own object 
    x.domain(data.map(function(d) { return d.file_id})); 
    y.domain([0, d3.max(data, function(d) { return d.t})]); 

надеюсь, что это помогает

0

Если я изменю имя файла на объект, он не работает.

Затем вы должны вызвать его функцию и передать объект в Params:

var obj = {}; // the object to be be passed for chart 

function updateGraph(o){ // get in the params here 
    var x = d3.scale.ordinal().rangeRoundBands([0, width]), 
     y = d3.scale.linear().range([height, 0]); 

    x.domain(o.letter); 
    y.domain([0, o.frequency]); 
} 

updateGraph(obj); // <----pass it here 
Смежные вопросы