Мне нужно получить значения записей с одной строкой. Мне нужно найти 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>
Использование данных в данном формате может быть затруднительным, поэтому одним из способов является преобразование формата данных в простой, как только он будет получен с сервера, как
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>