Monday, June 3, 2024
 Popular · Latest · Hot · Upcoming
129
rated 0 times [  136] [ 7]  / answers: 1 / hits: 18391  / 7 Years ago, mon, november 27, 2017, 12:00:00

I have a jQuery ajax request which returns data in json format, how can we convert it and push in to an array. TIA.



[{Day:Nov 03,Saavor Kitchen:null,Home Kitchen:2,Restaurant:null},
{Day:Nov 06,Saavor Kitchen:null,Home Kitchen:1,Restaurant:1},
{Day:Nov 07,Saavor Kitchen:null,Home Kitchen:null,Restaurant:1},
{Day:Nov 08,Saavor Kitchen:null,Home Kitchen:2,Restaurant:null},
{Day:Nov 09,Saavor Kitchen:null,Home Kitchen:4,Restaurant:null},
{Day:Nov 10,Saavor Kitchen:null,Home Kitchen:3,Restaurant:null},
{Day:Nov 11,Saavor Kitchen:null,Home Kitchen:4,Restaurant:null},
{Day:Nov 13,Saavor Kitchen:null,Home Kitchen:4,Restaurant:1},
{Day:Nov 14,Saavor Kitchen:null,Home Kitchen:2,Restaurant:1},
{Day:Nov 15,Saavor Kitchen:null,Home Kitchen:5,Restaurant:null},
{Day:Nov 16,Saavor Kitchen:null,Home Kitchen:5,Restaurant:null},
{Day:Oct 30,Saavor Kitchen:null,Home Kitchen:null,Restaurant:2},
{Day:Oct 31,Saavor Kitchen:null,Home Kitchen:2,Restaurant:3}]


Desired output :-



    [
['Day', 'Saavor Kitchen', 'Home Kitchen', 'Restaurant '],
['Nov 03', 1000, 400, 50],
['Nov 04', 1170, 460, 90],
['Nov 05', 660, 1120, 58],
['Nov 06', 1030, 540, 88]
]

More From » jquery

 Answers
11

You can do it like below (using .map and .unshift):-





var json = '[{Day:Nov 03,Saavor Kitchen:null,Home Kitchen:2,Restaurant:null},{Day:Nov 06,Saavor Kitchen:null,Home Kitchen:1,Restaurant:1},{Day:Nov 07,Saavor Kitchen:null,Home Kitchen:null,Restaurant:1},{Day:Nov 08,Saavor Kitchen:null,Home Kitchen:2,Restaurant:null},{Day:Nov 09,Saavor Kitchen:null,Home Kitchen:4,Restaurant:null},{Day:Nov 10,Saavor Kitchen:null,Home Kitchen:3,Restaurant:null},{Day:Nov 11,Saavor Kitchen:null,Home Kitchen:4,Restaurant:null},{Day:Nov 13,Saavor Kitchen:null,Home Kitchen:4,Restaurant:1},{Day:Nov 14,Saavor Kitchen:null,Home Kitchen:2,Restaurant:1},{Day:Nov 15,Saavor Kitchen:null,Home Kitchen:5,Restaurant:null},{Day:Nov 16,Saavor Kitchen:null,Home Kitchen:5,Restaurant:null},{Day:Oct 30,Saavor Kitchen:null,Home Kitchen:null,Restaurant:2},{Day:Oct 31,Saavor Kitchen:null,Home Kitchen:2,Restaurant:3}]';

var columns = ['Day', 'Saavor Kitchen', 'Home Kitchen', 'Restaurant'];

var result = JSON.parse(json).map(function(obj) {
return columns.map(function(key) {
return obj[key];
});
});
result.unshift(columns);
console.log(result);
console.log(Object.keys($.parseJSON(json)[0]));

<script src=https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js></script>





To get keys dynamically:-



console.log(Object.keys($.parseJSON(json)[0]));


Since you already used dataType:'json' in your ajax code, so do:-



console.log(Object.keys(json[0]));

[#55830] Thursday, November 23, 2017, 7 Years  [reply] [flag answer]
Only authorized users can answer the question. Please sign in first, or register a free account.
antoinette

Total Points: 206
Total Questions: 99
Total Answers: 95

Location: Guam
Member since Tue, Nov 29, 2022
2 Years ago
;