javascript - 从 javascript for 循环创建 JSON 字符串

标签 javascript string json loops for-loop

我想从 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/

相关文章:

swift - Swift 5 中一个简单的字符串处理函数

Javascript:从 var 打印(到打印机...)?

javascript - 使用 .getJSON 但不使用嵌入数据时控制台中出现未定义的 JSON 错误

javascript - Parse.com [Javascript API] : Get an array of parse objects

javascript - 选项卡变得无响应

javascript - 将选项放在下拉框中

javascript - 什么是批处理文件中的 WScript?

python - 在Python中用数据帧中的平均值替换 '?'时出错

javascript - getJSON解释

java - 如何在 Java(服务器端)中对 JSONArray 中的 JSONObject 进行排序?