我想从 javascript for 循环创建一个 JSON 字符串。这是我尝试做的(这给了我一些看起来像 JSON 字符串的东西),但它不起作用。
var edited = "";
for(var i=1;i<POST.length-1;i++) {
edited += '"'+POST[i].name+'":"'+POST[i].value+'",';
}
它给了我这个:
"type":"empty","name":"email-address","realname":"Email Address","status":"empty","min":"empty","max":"empty","dependson":"empty",
如果我稍后尝试将其转换为 JSON 对象,这将不起作用。
最佳答案
两个问题:
- 您需要一个对象,因此 JSON 字符串必须以
{
开头并以}
结尾。 - 尾部有一个
,
可能被认为是无效的。
使用库可能更好,但要更正您的代码:
- 将
var edited = "";
更改为var edited = "{";
以使用{
开始您的 JSON 字符串>
- 在 for 循环之后添加
edited = edited.slice(0, -1);
以删除结尾的逗号。 - 在前面的语句后添加
edited += "}";
以} 结束您的 JSON 字符串
您的最终代码将是:
var edited = "{";
for(var i=1;i<POST.length-1;i++) {
edited += '"'+POST[i].name+'":"'+POST[i].value+'",';
}
edited = edited.slice(0, -1);
edited += "}";
同样,最好使用库(例如 JSON.stringify
),通过使用 for 循环创建对象,使用 POST[i].name
添加属性作为键和 POST[i].value
作为值,然后使用库将对象转换为 JSON。
此外,您从索引 1
开始并以索引 POST.length-2
结束,因此不包括索引 0
(第一个值) 和 POST.length-1
(最后一个值)。这是您真正想要的吗?
关于javascript - 从 javascript for 循环创建 JSON 字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6979092/