Строковое преобразование json с переменными и массивом

У меня есть этот код:

var dic = "[";
    for (var i = 0; i < aelem.length; i++) {
        dic += "{Key:" + aelem[i].value + ",Value:" + belem[i].value + "}"
        if (i < aelem.length - 1)
            dic += ",";
    }
    dic += "]";

    var pData = JSON.stringify(
        {
            'Index': elem[0].value, 'Tag': elem[1].value,
            'DicRule': dic
        }
    );

Но это не работает. В результате Index и Tag - это поле, но DicRule пусто.

JSON.stringify уже сериализуется за вас. Почему вы сами сериализируете dic?
Caramiriel 26.10.2018 09:18

Я не знаю, как динамически сериализовать массив

it freelance 26.10.2018 09:19

Ничего не отличается от обычных объектов / массивов: var dic = []; for (var i = 0; i < aelem.length; i++) { dic.push({Key: aelem[i].value, Value: belem[i].value}); }

Caramiriel 26.10.2018 09:22
1
3
37
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Решение:

var dic= [];
    for (var i = 0; i < aelem.length; i++) {

        dic.push({
            Key: aelem[i].value,
            Value: belem[i].value
        });
    }       
    var pData = JSON.stringify(
        {
            'Index': elem[0].value, 'Tag': elem[1].value,
            'DicRule': dic
        }
    );

Другие вопросы по теме