2015-10-25 3 views
0

Я хочу, чтобы генерировать JSON из несколько массива, как этотJson генерируется с угловым Мессинг

var qus ={ 
{ 
"qus" :"what is your name?", 
"option1" : {"ans" : Alex, "cor:"false"}, 
"option2" : {"ans" : Hervy, "cor:"false"}, 
"option3" : {"ans" : Rico, "cor:"true"}, 
"option4" : {"ans" : Tom, "cor:"false"}, 
}, 

{ 
"qus" :"what is your brother's name?", 
"option1" : {"ans" : Alex, "cor:"false"}, 
"option2" : {"ans" : Hervy, "cor:"true"}, 
"option3" : {"ans" : Rico, "cor:"false"}, 
"option4" : {"ans" : Tom, "cor:"false"}, 
}, 

} 

но это не создает, если я беру значение массива с помощью текстовой области. (просмотреть это) http://plnkr.co/edit/hvuLXL1SPntlqtAV8iEW?p=preview Он добавляет все теги br.

И здесь он разбивает все. (просмотреть это) http://plnkr.co/edit/5qzsSSzv6oXV4QRpPa36?p=preview

Не могли бы вы объяснить? Почему это не работает, если я беру значение из текстового поля? как мне получить результат, как json, который я написал выше, из перепутанных plnks?

+0

ли мой ответ вам помочь? –

ответ

0

Вам необходимо сделать JSON.parse. Вам нужно это сделать, потому что объект «объекты» является объектом типа «строка». Поэтому, когда вы делаете для, вы будете выполнять итерацию над каждым персонажем, который не даст желаемого результата. Вы должны разобрать строку JSON и получить массив из него. Остальная логика кажется прекрасной.

Попробуйте это как функцию scope.generate.

http://plnkr.co/edit/YW3jFTrTgdH4FfitfeMJ?p=preview

$scope.generate = function() { 

    var objects = document.getElementById("inpt").value; 

    var el = document.getElementById("out"); 

    var newObj = JSON.parse(objects); 
    el.innerHTML += 'var qus ={ <br>'; 

    for (i in newObj) { 
    var qset = newObj[i]; 

    el.innerHTML += '{ <br>'; 
    el.innerHTML += '"qus" :"' + qset[0] + '",<br>'; 

    for (n in qset) { 
     if (n == 0) continue; 
     var nameset = qset[n]; 

     el.innerHTML += '"option' + n; 
     el.innerHTML += '" : {"ans" : ' + nameset[0]; 
     el.innerHTML += ', "cor:"' + nameset[1] + '"},<br>'; 
    } 

    el.innerHTML += '},<br><br>'; 
    } 
    el.innerHTML += '}'; 
    //el.innerHTML = JSON.stringify(objects); 
    console.log(objects); 

}; 
+0

Plz решить эту и это один http://plnkr.co/edit/hvuLXL1SPntlqtAV8iEW?p=preview и http://plnkr.co/edit/5qzsSSzv6oXV4QRpPa36?p=preview – rushdi

+0

JSON.parse работает в оба случая. –

Смежные вопросы