Javascript 用angular生成的Json搞砸了

Javascript 用angular生成的Json搞砸了,javascript,json,angularjs,multidimensional-array,Javascript,Json,Angularjs,Multidimensional Array,我想从这样的多数组生成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

我想从这样的多数组生成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"},
},

}
但是,如果我通过文本区域获取数组值,它不会生成。(查看此) 它添加所有br标记

在这里,它正在打破一切。(查看此)


你介意解释一下吗?如果我从textarea获取值,为什么它不起作用?我如何从混乱的PLNK中获得类似于我上面发布的json的结果

您需要执行JSON.parse。您需要这样做,因为“objects”对象是“string”类型的对象。因此,当您在中执行时,您将迭代每个字符,这将不会给出您想要的结果。您必须解析JSON字符串并从中提取数组。其余的逻辑似乎很好

尝试将此作为您的scope.generate函数

$scope.generate=function(){
var objects=document.getElementById(“inpt”).value;
var el=document.getElementById(“out”);
var newObj=JSON.parse(对象);
el.innerHTML+='var qus={
'; 对于(我在newObj){ var qset=newObj[i]; el.innerHTML+='{
'; el.innerHTML+=''qus:“+qset[0]+',
”; 对于(qset中的n){ 如果(n==0)继续; 变量名称集=qset[n]; el.innerHTML+='选项'+n; el.innerHTML+='':{“ans”:'+名称集[0]; el.innerHTML++=',“cor:“'+nameset[1]+'”},
'; } el.innerHTML+='},

'; } el.innerHTML+='}'; //el.innerHTML=JSON.stringify(对象); console.log(对象); };
Plz解决这个和这个问题,我的答案对你有帮助吗?
$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);

};