var jsonArr = [];
for (var i = 0; i < 10; i++) {
jsonArr.push({
id: i,
optionValue: "abc"
});
}
jsonArr = JSON.stringify(jsonArr);
console.log(jsonArr);
此代码为我提供以下输出:
[{"id":0,"optionValue":"abc"},{"id":1,"optionValue":"abc"},{"id":2,"optionValue":"abc"},{"id":3,"optionValue":"abc"},{"id":4,"optionValue":"abc"},{"id":5,"optionValue":"abc"},{"id":6,"optionValue":"abc"},{"id":7,"optionValue":"abc"},{"id":8,"optionValue":"abc"},{"id":9,"optionValue":"abc"}]
但我需要
[{id:0,optionValue:"abc"},{id:1,optionValue:"abc"},{id:2,optionValue:"abc"},{id:3,optionValue:"abc"},{id:4,optionValue:"abc"},{id:5,optionValue:"abc"},{id:6,optionValue:"abc"},{id:7,optionValue:"abc"},{id:8,optionValue:"abc"},{id:9,optionValue:"abc"}]
此输出,
我在谷歌搜索过,但它说没有双引号的ParameterName
无效。
但我只需要这个输出,朋友的帮助吗?
答案 0 :(得分:1)
试试这个:
$(function () {
var jsonArr = [];
for (var i = 0; i < 10; i++) {
jsonArr.push({
id: i,
optionValue: "abc"
});
}
jsonArr = JSON.stringify(jsonArr).replace(/\"([^(\")"]+)\":/g, "$1:");
console.log(jsonArr);
});
答案 1 :(得分:1)
好吧,假设你需要的是字符串化的本机JS对象,我写了一个简单的序列化器。在生产环境中使用它之前,可能需要进行全面测试。
var jsStringify = function (obj) {
var out = "";
if (typeof obj == "object") {
// object
if (typeof obj.length == "undefined") {
out += "{";
var idx = 0;
for (var n in obj) {
if (obj.hasOwnProperty(n)) {
out += (idx > 0) ? "," : "";
out += n + ":" + jsStringify(obj[n]);
idx++;
}
}
out += "}";
}
// array
else {
out += "[";
var idx = 0;
for (var i = 0; i < obj.length; i++) {
if (obj.hasOwnProperty(i)) {
out += (idx > 0) ? "," : "";
out += jsStringify(obj[i]);
idx++;
}
}
out += "]";
}
} else {
out += JSON.stringify(obj);
}
return out;
}
jsStringify([{
id: "test",
no: 1,
nested: [1, [2, "3", {
inline: ["\"double-quote-safe\""]
}], 4]
}]);
输出:
[{id:"test",no:1,nested:[1,[2,"3",{inline:["\"double-quote-safe\""]}],4]}]
在此处试试:http://jsfiddle.net/SbWtN/
顺便说一句,如果值不包含任何双引号字符,只需正则表达式替换即可完成工作。
答案 2 :(得分:0)
试试这个:
var array = [];
for (var i = 0; i < 10; i++) {
array.push({
id: i,
optionValue: "abc"
});
}
console.log(array);