jQuery parseJSON Multidimensional-array
arrays, javascript, jquery, json, multidimensional-array
Solution
You don't need to call parseJSON again on value. It's already an object
var result='{"rates":[{"meter":"30","rate":"0.15060","ppd":"10.000"}]}';
console.log(result);
$.each($.parseJSON(result), function (item, value) {
if (item == "rates") {
$.each(value, function (i, object) {
$.each(object, function (subI, subObject) {
console.log(subI + "=" + subObject);
});
});
}
});
Also, incase you were wondering the error was happening because you were trying to call parseJSON on an object and parseJSON expects a string so it was returning null to the each function which was then trying to do a for loop based on null.length
Problem
I have PHP outputting a JSON multidimensional array as follows: ``` {"rates":[{"meter":"30","rate":"0.15060","ppd":"10.000"}]} ``` However, I keep getting an error when trying to decode it on the JavaSCript side of things. ``` Uncaught TypeError: Cannot read property 'length' of null ``` Here is the code below for the jQuery side of things: ``` success: function (result) { console.log(result); $.each($.parseJSON(result), function (item, value) { if (item == "rates") { $.each($.parseJSON(value), function (i, object) { console.log(i + "=" + object); }); } ``` The 1st console log gives me the output I mentioned at the top, but for some reason i am not able to access the array as I thought I would. Any help is greatly appreciated :)