我一直在为这个问题苦苦挣扎:
我正在尝试向 map 添加一些颜色(JQuery Vector Maps)向国家/地区添加颜色的语法如下(Jquery)
$('#map').vectorMap('set', 'colors', { br: '#CCDDAA' });
$('#map').vectorMap('set', 'colors', { us: '#CCDDAA' });
如您所见,您可以采用该方法或以下方法:
var gdpData = {"br":"#CCDDAA", "us":"#CCDDAA"};
$('#map').vectorMap('set', 'colors', gdpData);
问题是我的 Controller 像这样返回 JSON 信息:
[{"Id":2,"Country":"US","CountryCode":"us"},{"Id":4,"Country":"BR","CountryCode":"br"}]
我有小写的 CountryCode,这很好,我想根据某些值在 JS 端设置它的颜色。
这就是我所做的:我想我有 2 条路,
首先操作 JSON 使其看起来像 {"br":"#CCDDAA", "us":"#CCDDAA"};
但我不知道该怎么做: (
或者逐行调用设置的颜色,但是这种方法需要不带引号的国家代码。
$.ajax({
dataType: "json",
url: '/Statistics/GetCoutriesListed/',
type: 'GET',
success: function (data)
{
$.each([data], function (index, value)
{
//This is not working of course due to quotes.
$('#map').vectorMap('set', 'colors', value[0].CountryCode: '#CCDDAA');
//And I don't know how to do this :(
$('#map').vectorMap('set', 'colors', { JASON IN CORRECT FORMAT });
});
}
});
处理这个问题的好方法是什么?你有什么想法或建议吗?我对 JS、Jquery 一点都不强。
谢谢!
最佳答案
像这样的事情怎么样;
$.each([data], function (index, value) {
var f = value[index].CountryCode,
obj = {};
obj[f] = "#CCDDAA";
$('#map').vectorMap('set', 'colors', obj);
});
关于javascript - 转换JSON的算法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21937421/