我正在尝试使用datamaps图表库并且遇到了数据表示法:
var map = new Datamap({
element: document.getElementById('container'),
fills: {
HIGH: '#afafaf',
LOW: '#123456',
MEDIUM: 'blue',
UNKNOWN: 'rgb(0,0,0)',
defaultFill: 'green'
},
data: {
IRL: {
fillKey: 'LOW',
numberOfThings: 2002
},
USA: {
fillKey: 'MEDIUM',
numberOfThings: 10381
}
}
});
如果我想在“数据”属性中放置一个对象,我不能 - 因为国家/地区代码没有用引号括起来。
如何为此类方案构建数据?
[编辑]
这是我在控制器中创建的JSON,并使用REST标注将其发回:
{"USA":{"value":"15000.0","countryName":"USA"}}
我将其更改为以下内容以匹配库接受数据的方式:
{USA:{fillKey : 'LOW'}}
对于使用JSON.parse(),需要数据采用正确的JSON格式,例如:
{"USA":{"fillKey" : "LOW"}}
(注意美国周围没有引号)
目前,我正在使用类似的东西来创建数据图:
var dataForChart = buildDataForChart();// outputs a string "{USA:{fillKey : 'LOW'}}"
var map = new Datamap({
element: document.getElementById('container'),
fills: {
HIGH: '#afafaf',
LOW: '#123456',
MEDIUM: 'blue',
UNKNOWN: 'rgb(0,0,0)',
defaultFill: 'green'
},
data: dataForChart
});
但它似乎不起作用。
答案 0 :(得分:1)
尝试
var options = {
element: ...,
fills: ...,
data: {
IRL: {
fillKey: 'LOW',
numberOfThings: 2002
},
USA: {
fillKey: 'MEDIUM',
numberOfThings: 10381
}
}
}
options.data.CAN = { fillKey: 'HIGH', numberOfThings: 4201 };
var map = new Datamap(options);