jsオブジェクトのJson配列への簡単な実装例

1096 ワード


function obj2Str(obj){
switch(typeof(obj)){
case 'object':
var ret = [];
if (obj instanceof Array){
for (var i = 0, len = obj.length; i < len; i++){
ret.push(obj2Str(obj[i]));
}
return '[' + ret.join(',') + ']';
}
else if (obj instanceof RegExp){
return obj.toString();
}
else{
for (var a in obj){
ret.push(a + ':' + obj2Str(obj[a]));
}
return '{' + ret.join(',') + '}';
}
case 'function':
return 'function() {}';
case 'number':
return obj.toString();
case 'string':
return "\"" + obj.replace(/(\\|\")/g, "\\$1").replace(/
|\r|\t/g, function(a) {return ("
"==a)?"\
":("\r"==a)?"\\r":("\t"==a)?"\\t":"";}) + "\"";
case 'boolean':
return obj.toString();
default:
return obj.toString();
}
}