#javascript #d3.js
#javascript #d3.js
Вопрос:
Я читаю файл csv, используя d3.csv
который работает нормально. Чтение csv-файла также переименовывает столбцы с помощью функции:
Однако я бы предпочел прочитать те же данные из файла json.
d3.csv("myfile.csv", function(d) {
return {
location: d.identifier,
date: new Date(d.created),
amount: d.count_objects
};
}).then(function getData(rawData) {
console.log(rawData[0]);
});
Консольный вывод d3.csv
возвращает результаты с переименованными столбцами:
console:
{location: "CO", date: Wed Jan 22 2020 00:00:00 GMT-0500 (Eastern Standard Time), amount: "0"}
Я просто заменил csv на файл json в том же коде, ожидая, что он будет прочитан аналогично, но это не так.
d3.json("myfile.json", function(d) {
return {
location: d.identifier,
date: new Date(d.created),
amount: d.count_objects
};
}).then(function getData(rawData) {
console.log(rawData[0]);
});
Однако консольный вывод d3.json
возвращает результаты с оригинальными ключами json:
console:
{created: "2020-01-22T00:00:00.000", identifier: "CO", count_objects: "0"}
Какие изменения требуются для d3.json()
получения тех же результатов, d3.csv()
например, для возврата результатов с переименованными ключами?
Ответ №1:
d3.json не использует функцию строки, поскольку данные json не всегда являются массивом. Для обработки данных вы можете сделать что-то вроде:
d3.json("myfile.json").then(function (json) {
return json.map(function (d) {
return {
location: d.identifier,
date: new Date(d.created),
amount: d.count_objects
};
});
}).then(function getData(rawData) {
console.log(rawData[0]);
});