想给json数据的key值加引号,写的代码如下, var jsonT = {
testUn7: {
data: "test",
data1:"test2s"
}
};
function test(obj) {
var str = "";
var strKeyValue="";
for (var i in obj) {
strKeyValue = typeof (obj[i]) == "object" ?"{"+ test(obj[i]) +"}": "'" + obj[i] + "'";
str += "'" + i + "'" + ":" + strKeyValue + ",";
}
str = str.length > 0 ? str.substr(0, str.length - 1) : "";
console.log(str);
}预想的结果为:'testUn7':{'data':'test','data1':'test''test2s' } ,实际结果为:
'testUn7':{undefined} ,麻烦帮忙看看,问题出在哪里了,怎么改动下才能有如期效果,谢谢了。
testUn7: {
data: "test",
data1:"test2s"
}
};
function test(obj) {
var str = "";
var strKeyValue="";
for (var i in obj) {
strKeyValue = typeof (obj[i]) == "object" ?"{"+ test(obj[i]) +"}": "'" + obj[i] + "'";
str += "'" + i + "'" + ":" + strKeyValue + ",";
}
str = str.length > 0 ? str.substr(0, str.length - 1) : "";
console.log(str);
}预想的结果为:'testUn7':{'data':'test','data1':'test''test2s' } ,实际结果为:
'testUn7':{undefined} ,麻烦帮忙看看,问题出在哪里了,怎么改动下才能有如期效果,谢谢了。
function test2(obj) {
var str = "";
for (var i in obj) {
strKeyValue = typeof (obj[i]) == "object" ? "{" + test2(obj[i]) + "}" : "'" + obj[i] + "'";
str += "'" + i + "'" + ":" + strKeyValue + ",";
}
str = str.length > 0 ? str.substr(0, str.length - 1) : "";
return str;
}
function test(obj) {
var str = "";
var strKeyValue="";
for (var i in obj) {
strKeyValue = typeof (obj[i]) == "object" ? "{" + test2(obj[i]) + "}" : "'" + obj[i] + "'";
str += "'" + i + "'" + ":" + strKeyValue + ",";
}
str = str.length > 0 ? str.substr(0, str.length - 1) : "";
console.log(str);
}效果倒是如期的效果。有啥改进办法没