很多时候从服务器传过来的json文本比较复杂,下面的函数可以把数组,String,Object转为JSON格式的内容。
JSON = {
encode : function(input) {
if (!input) return 'null'
switch (input.constructor) {
case String: return '"' + input + '"'
case Number: return input.toString()
case Boolean: return input.toString()
case Array :
var buf = []
for (i in input)
buf.push(JSON.encode(input[i]))
return '[' + buf.join(', ') + ']'
case Object:
var buf = []
for (k in input)
buf.push(k + ' : ' + JSON.encode(input[k]))
return '{ ' + buf.join(', ') + '} '
default:
return 'null'
}
}
}
下面是一个调用实例:
if (xmlhttp.readyState == 4 && xmlhttp.status == 200)
{
var result = xmlhttp.responseText;
text = JSON.encode(result);
var gen3 = document.getElementById("gen3");
gen3.innerHTML = result;
}
另一个测试实例:
//数组
var aa = new Array()
aa[0] = "1111";
aa[1] = "dddd"
alert(JSON.encode(aa))
var s = JSON.encode([1,2,3]);
alert(s); // [1,2,3]
var object = JSON.encode([0,1,false,true,null,[2,3],{"some":"value"}]);
alert(object)