/ Published in: JavaScript
Expand |
Embed | Plain Text
function array2json(arr) { var parts = []; var is_list = (Object.prototype.toString.apply(arr) === '[object Array]'); for(var key in arr) { var value = arr[key]; if(typeof value == "object") { //Custom handling for arrays if(is_list) parts.push(array2json(value)); else parts[key] = array2json(value); } else { var str = ""; if(!is_list) str = '"' + key + '":'; //Custom handling for multiple data types if(typeof value == "number") str += value; //Numbers else if(value === false) str += 'false'; //The booleans else if(value === true) str += 'true'; else str += '"' + value + '"'; //All other things // :TODO: Is there any more datatype we should be in the lookout for? (Functions?) parts.push(str); } } var json = parts.join(","); if(is_list) return '[' + json + ']';//Return numerical JSON return '{' + json + '}';//Return associative JSON }
You need to login to post a comment.
