D3动态json密钥名称
D3 dynamic json key names
当你想在d3中制作一个图,并从json文件中读取输入时(例如),代码大致如下:
d3.json("data/data.json", function(error, data) {
data.forEach(function(d) {
d.date = parseDate(d.date);
d.close = +d.close;
});
// Scale the range of the data
x.domain(d3.extent(data, function(d) { return d.date; }));
y.domain([0, d3.max(data, function(d) { return d.close; })]);
svg.append("path") // Add the valueline path.
.attr("d", valueline(data));
svg.append("g") // Add the X Axis
.attr("class", "x axis")
.attr("transform", "translate(0," + height + ")")
.call(xAxis);
svg.append("g") // Add the Y Axis
.attr("class", "y axis")
.call(yAxis);
});
在我从d3noob.org得到的这个特定示例中,有一个json文件,其中包含有两个键(日期和结束)的对象。如果我不知道json文件的键名,并且必须使用字符串变量,该怎么办?例如:
d3.json("data/data.json", function(error, data) {
var var1 = "date";
var var2 = "close";
data.forEach(function(d) {
d.var1 = parseDate(d.var1);
d.var2 = +d.var2;
});
我试过这样做,但控制台给了我一个错误
d3.min.js:1错误:属性d:所需数字,"M0,NaNL106,NaNL212,…"。
我在这里做错了什么?
使用括号[]
表示法访问名称存储在变量中的对象属性。
例如:d.var1 = parseDate(d.var1)
变为d[var1] = parseDate(d[var1])
。
试试这个:
d3.json("data/data.json", function(error, data) {
var var1 = "date";
var var2 = "close";
data.forEach(function(d) {
d[var1] = parseDate(d[var1]);
d[var2] = +d[var2];
});
相关文章:
- 加载两个具有相同父密钥名称的json文件
- D3动态json密钥名称
- 根据用户选择获取 JSON 密钥
- 从包含密钥路径的字符串中获取json值
- 如何在javascript中获取数组密钥对的json子值
- node.js JSON.parse reviver没有't报告重复的密钥
- 仅使用该值检索 JSON 密钥
- 当我不知道密钥的名称时,如何读取 JSON 对象
- 使用给定的URL和密钥将JSON对象提取到jQuery ajax中
- 动态创建 json 密钥
- 循环访问没有数组的 JSON 密钥对象
- 杰克逊 JSON 处理密钥名称 = ognl 名称
- 获取密钥 Json 并使用名称 var 进行搜索
- 是用 JSON 保留的 tid 密钥
- 访问 JSON 中的嵌套对象(密钥对/MYSQL 数组)
- 在模型同步时发送带有 json 的 API 密钥
- 如何在 json 密钥中访问 Json 密钥
- 基于 json 密钥值的特定车把模板
- JSON 数据加密/解密或密钥值对
- 使用正则表达式转换 JSON 密钥值