Angular JS解决了对象JSON数组的不同格式

时间:2019-03-06 04:06:45

标签: javascript angularjs loops object

根据以下结果,每个循环的角度如何能够解决对象格式的json数组?值是标题,ID是键。任何想法?谢谢。

mycode

me.record.questionaires = []
angular.forEach(detail.questionaires, function (value, key) {
            me.record.questionaires.push({ "id": key, "title": value })

        });

格式化的json数据(detail.questionaire结果)

[  
   "{'sub_title': 'dsadsa', 'instruction': 'You Must',…elimit': '01:05:19', 'title': 'asdsa', 'id': 133}",
   "{'sub_title': 'sdasdsa', 'instruction': None, 'cre…melimit': '05:30:09', 'title': 'asda', 'id': 131}"
]

2 个答案:

答案 0 :(得分:2)

您需要

  1. 环绕数组
  2. 将字符串解析为JSON
  3. 将适当的值推送或映射到您的questionaires数组中(尚不清楚您想要什么数据)
me.record.questionaires = detail.questionaires.map(json => {
  let { id, title } = JSON.parse(json)
  return { id, title }
})

答案 1 :(得分:1)

我不得不稍微更改样本格式的JSON,因为它给了我控制台错误。请查看是否有帮助。

angular
  .module("myModule", [])
  .controller("myController", function($scope) {
    var me ={record: {questionaires: []}};
    $scope.me = me;
	
    var detail ={};
    detail.questionaires = [  
      "{'sub_title': 'dsadsa', 'instruction': 'You Must','…elimit': '01:05:19', 'title': 'asdsa', id: 133}",
      '{"sub_title": "sdasdsa", "instruction": "None", "cre…melimit": "05:30:09", "title": "asda", "id": 131}'
    ];

    angular.forEach(detail.questionaires, function (value, key) {
    
      var questionaire = JSON.parse(value.replace(/'/g, '"').replace(/id:/g, '"id":'));     
      me.record.questionaires.push({ "id": questionaire.id, "title": questionaire.title });
    });
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/angular.js/1.7.5/angular.min.js"></script>

<div ng-app="myModule">
  <div ng-controller="myController">
  <div><strong>me.record.questionaires:</strong></div>
    <div ng-repeat="q in me.record.questionaires">
    <div>{{q}}</div>
    </div>
  </div>
</div>