我从服务器获取以下JSON:
"[{"Apr-2015":"20"},{"Mar-2015":"20"},{"Feb-2015":"20"},{"Dec-2014":"10"},{"Nov-2014":"0"},{"Oct-2014":"10"},{"Jul-2014":"0"},{"Jun-2014":"0"},{"May-2014":"0"}]"
我需要它采用以下格式:
[["Apr-2015",20],["Mar-2015",20],["Feb-2015",20],["Dec-2014",0],["Nov-2014",10],["Oct-2014",10],["Jul-2014",0],["Jun-2014",0],["May-2014",0]]
我试过这样做:
$.map(JSON.parse(data.d), function (key, value) {
var test = key.split(':');
return [test[0], test[1]];
});
但由于key是[object object]类型,我无法这样做。 我怎样才能得到我想要的结果?
答案 0 :(得分:0)
问题是您将{"Apr-2015":"20"}
视为关键,这就是为什么它只是说[object object]
。您还需要查看每个密钥。
var json = '[{"Apr-2015":"20"},{"Mar-2015":"20"},{"Feb-2015":"20"},{"Dec-2014":"10"},{"Nov-2014":"0"},{"Oct-2014":"10"},{"Jul-2014":"0"},{"Jun-2014":"0"},{"May-2014":"0"}]';
var converted = JSON.parse(json).map(function(item) {
return Object.keys(item).reduce(function(list, key) {
if (item.hasOwnProperty(key)) {
list.push(key, item[key]);
}
return list;
}, []);
});
alert(JSON.stringify(converted));
答案 1 :(得分:0)
另一个版本:
var d = [{"Apr-2015":"20"},{"Mar-2015":"20"},{"Feb-2015":"20"},{"Dec-2014":"10"},{"Nov-2014":"0"},{"Oct-2014":"10"},{"Jul-2014":"0"},{"Jun-2014":"0"},{"May-2014":"0"}];
var a = [];
$.each(d, function(i,row){ var key = Object.keys(row)[0]; a.push([key, row[key]]); });
console.log(a);
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>