Javascript 从JSON中删除引号
当我调用JSON.stringify时,会得到一个类似[{id:001,name:Mary},{id:002,name: 汤姆}]。我怎样才能使它看起来像这样Javascript 从JSON中删除引号,javascript,json,Javascript,Json,当我调用JSON.stringify时,会得到一个类似[{id:001,name:Mary},{id:002,name: 汤姆}]。我怎样才能使它看起来像这样 [ {id: 7, name: "Ruby"}, {id: 29, name: "C#"}, {id: 31, name: "Fortran"}, {id: 37, name: "Visual Basic"}, {id: 41, name: "C"}, {id: 43, name: "C++
[
{id: 7, name: "Ruby"},
{id: 29, name: "C#"},
{id: 31, name: "Fortran"},
{id: 37, name: "Visual Basic"},
{id: 41, name: "C"},
{id: 43, name: "C++"},
{id: 47, name: "Java"}
]
好的,显然你想把引号去掉,然后很好地缩进?那么我会事先这样做:
function indent(str) {
return str.replace(/\n/g, '\n\t');
}
function toPrettyObject(obj) {
var ajsoln = []; // Actual JavaScript Object Literal Notation
if(Object.prototype.toString.call(obj) === '[object Array]') {
for(var i = 0; i < obj.length; i++) {
ajsoln.push(indent(toPrettyObject(obj[i])));
}
return '[\n' + ajsoln.join(',\n') + '\n]';
} else if(typeof obj !== 'object') {
return JSON.stringify(obj);
} else {
for(var x in obj) {
ajsoln.push('\t' + (/^[a-zA-Z_\$][\w\$]+$/.test(x) ? x : JSON.stringify(x)) + ': ' + indent(toPrettyObject(obj[x])));
}
return '{\n' + ajsoln.join(',\n') + '\n}';
}
}
问题是什么?你尝试了什么,到目前为止还没有工作过什么?我不确定玛丽和Tom became Ruby,C,FORTRAN,Visual Basic,C,C++和java。为什么这两个样本是不同的?JavaScript中没有这样的字符串[@ USE1658116:你知道它有没有引号,对吗?不是JSON,标准JS对象,其中ID是字符串,他希望它们是数字@马特格里尔:你为什么说它不是JSON?不管怎样,如果不是。。。直接跳到第二部分。@minitech-ah-yes,它实际上是JSON。我的错。Nevermind:这里的复活器函数很有用。functionkey,val{return key==id?+val:val;}