получить записи с той же строкой JSON

0

Мне нужно получить значения записей с одной строкой. Мне нужно найти campus0, затем сделать foreach и получить текст и ссылку link0 и повторить. for (n) campus campus_0, and for (n) link.

Я не могу изменить свой json на многомерный массив, потому что я получаю с другого сайта.

Я использую angularjs

Пример Json:

"campus_0_name": [
"Petone"
],
"campus_0_link_0_text": [
"Bachelor of Engineering Technology Degree (Level 7) "
],
"campus_0_link_0_url": [
"https://www.weltec.ac.nz/SUBJECTAREAS/EngineeringTechnology/BachelorofEngineeringTechnology/tabid/695/Default.aspx"
],
"campus_0_link_1_text": [
"New Zealand Diploma in Engineering (Level 6) "
],
"campus_0_link_1_url": [
"https://www.weltec.ac.nz/SUBJECTAREAS/Engineering/NewZealandDiplomainEngineeringLevel6Y1/tabid/1002/Default.aspx"
],
"campus_0_link_2_text": [
"Certificate in Foundation Studies (Level 3 and 4) - Engineering"
],
"campus_0_link_2_url": [
"https://www.weltec.ac.nz/SUBJECTAREAS/EngineeringTechnology/CertificateinFoundationStudiesEngineering/tabid/1253/Default.aspx"
],

"campus_1_link_0_text": [
"Bachelor of Engineering Technology Degree (Level 7) "
],
"campus_1_link_0_url": [
"https://www.weltec.ac.nz/SUBJECTAREAS/EngineeringTechnology/BachelorofEngineeringTechnology/tabid/695/Default.aspx"
],
"campus_1_link_1_text": [
"New Zealand Diploma in Engineering (Level 6) "
],
"campus_1_link_1_url": [
"https://www.weltec.ac.nz/SUBJECTAREAS/Engineering/NewZealandDiplomainEngineeringLevel6Y1/tabid/1002/Default.aspx"
],
"campus_1_link_2_text": [
"Certificate in Foundation Studies (Level 3 and 4) - Engineering"
],
"campus_1_link_2_url": [
"https://www.weltec.ac.nz/SUBJECTAREAS/EngineeringTechnology/CertificateinFoundationStudiesEngineering/tabid/1253/Default.aspx"
]

Это то, чего я хочу достичь.

<div class="campus_0">
    <dl class="link_0">
        <dt class="text">Bachelor of Engineering Technology Degree (Level 7)</dt>
        <dd class="url">"https://www.weltec.ac.nz/SUBJECTAREAS/EngineeringTechnology/BachelorofEngineeringTechnology/tabid/695/Default.aspx"</dd>
    </dl>

    <dl class="link_1">
        <dt class="text">Bachelor of Engineering Technology Degree (Level 7)</dt>
        <dd class="url">"https://www.weltec.ac.nz/SUBJECTAREAS/EngineeringTechnology/BachelorofEngineeringTechnology/tabid/695/Default.aspx"</dd>
    </dl>

    <dl class="link_2">
        <dt class="text">Bachelor of Engineering Technology Degree (Level 7)</dt>
        <dd class="url">"https://www.weltec.ac.nz/SUBJECTAREAS/EngineeringTechnology/BachelorofEngineeringTechnology/tabid/695/Default.aspx"</dd>
    </dl>

</div>


<div class="campus_1">
    <dl class="link_0">
        <dt class="text">Bachelor of Engineering Technology Degree (Level 7)</dt>
        <dd class="url">"https://www.weltec.ac.nz/SUBJECTAREAS/EngineeringTechnology/BachelorofEngineeringTechnology/tabid/695/Default.aspx"</dd>
    </dl>

    <dl class="link_1">
        <dt class="text">Bachelor of Engineering Technology Degree (Level 7)</dt>
        <dd class="url">"https://www.weltec.ac.nz/SUBJECTAREAS/EngineeringTechnology/BachelorofEngineeringTechnology/tabid/695/Default.aspx"</dd>
    </dl>

    <dl class="link_2">
        <dt class="text">Bachelor of Engineering Technology Degree (Level 7)</dt>
        <dd class="url">"https://www.weltec.ac.nz/SUBJECTAREAS/EngineeringTechnology/BachelorofEngineeringTechnology/tabid/695/Default.aspx"</dd>
    </dl>

</div>

1 ответ

0

Использование данных в данном формате может быть затруднительным, поэтому одним из способов является преобразование формата данных в простой, как только он будет получен с сервера, как

var app = angular.module('my-app', [], function() {})

app.controller('AppController', function($scope) {
  var data = {
    "campus_0_name": [
      "Petone"
    ],
    "campus_0_link_0_text": [
      "Bachelor of Engineering Technology Degree (Level 7) "
    ],
    "campus_0_link_0_url": [
      "https://www.weltec.ac.nz/SUBJECTAREAS/EngineeringTechnology/BachelorofEngineeringTechnology/tabid/695/Default.aspx"
    ],
    "campus_0_link_1_text": [
      "New Zealand Diploma in Engineering (Level 6) "
    ],
    "campus_0_link_1_url": [
      "https://www.weltec.ac.nz/SUBJECTAREAS/Engineering/NewZealandDiplomainEngineeringLevel6Y1/tabid/1002/Default.aspx"
    ],
    "campus_0_link_2_text": [
      "Certificate in Foundation Studies (Level 3 and 4) - Engineering"
    ],
    "campus_0_link_2_url": [
      "https://www.weltec.ac.nz/SUBJECTAREAS/EngineeringTechnology/CertificateinFoundationStudiesEngineering/tabid/1253/Default.aspx"
    ],

    "campus_1_link_0_text": [
      "Bachelor of Engineering Technology Degree (Level 7) "
    ],
    "campus_1_link_0_url": [
      "https://www.weltec.ac.nz/SUBJECTAREAS/EngineeringTechnology/BachelorofEngineeringTechnology/tabid/695/Default.aspx"
    ],
    "campus_1_link_1_text": [
      "New Zealand Diploma in Engineering (Level 6) "
    ],
    "campus_1_link_1_url": [
      "https://www.weltec.ac.nz/SUBJECTAREAS/Engineering/NewZealandDiplomainEngineeringLevel6Y1/tabid/1002/Default.aspx"
    ],
    "campus_1_link_2_text": [
      "Certificate in Foundation Studies (Level 3 and 4) - Engineering"
    ],
    "campus_1_link_2_url": [
      "https://www.weltec.ac.nz/SUBJECTAREAS/EngineeringTechnology/CertificateinFoundationStudiesEngineering/tabid/1253/Default.aspx"
    ]
  };

  var list = [];
  angular.forEach(data, function(value, key) {
    var match = key.match(/campus_(\d+)_link_(\d+)_(\w+)/);
    if (match) {
      var sublist = list[match[1]] || (list[match[1]] = []);
      var obj = sublist[match[2]] || (sublist[match[2]] = {});
      obj[match[3]] = value;
    }
  });

  $scope.list = list;
})
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.3.15/angular.js"></script>
<div ng-app="my-app" ng-controller="AppController">
  <div ng-repeat="array in list track by $index" class="campus_{{$index}}">
    <dl ng-repeat="obj in array track by $index" class="link_{{$index}}">
      <dt class="text">{{obj.text}}</dt>
      <dd class="url">"{{obj.url}}"</dd>
    </dl>
  </div>
</div>
  • 0
    jsfiddle.net/arunpjohny/o5otdtpm
  • 0
    Привет Арун, спасибо за твой ответ, просто у меня есть вопрос, что за строки (\ d +) (\ w +), это специальный код? можно сделать точно так же, но с кодом comun? - user1842369 только сейчас редактирую
Показать ещё 2 комментария

Ещё вопросы

Сообщество Overcoder
Наверх
Меню