Две проблемы:
- Требуется объект, поэтому строка JSON должна начинаться с
{
и заканчиваться }
.
- Есть конечный
,
, который может быть признан недействительным.
Возможно, лучше использовать библиотеку, но для исправления вашего кода:
- Измените
var edited = "";
на var edited = "{";
, чтобы начать строку JSON с {
- Добавьте
edited = edited.slice(0, -1);
после цикла for, чтобы удалить запятую.
- Добавьте
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
(последнее значение). Это то, что вы действительно хотите?