Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / HTML, JavaScript, VBScript, CSS [игнор отключен] [закрыт для гостей] / Разобрать jSON обьект / 4 сообщений из 4, страница 1 из 1
23.03.2016, 11:32
    #39198632
drummer84
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Разобрать jSON обьект
Требуется помощь, всю голову сломал.
Имеется массив вида:
Код: javascript
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
[
  {
    "Name": "Ivanov",
    "Department": "72000"
  },
  {
    "Name": "Petrov",
    "Department": "72000"
  },
  {
    "Name": "kuznetsov",
    "Department": "72100"
  },
  {
    "Name": "Putin",
    "Department": "72110"
  },
  {
    "Name": "Pushkin",
    "Department": "31000"
  },
  {
    "Name": "Ivanov2",
    "Department": "31300"
  },
  {
    "Name": "Sidorov",
    "Department": "72110"
  },
    {
    "Name": "Sidorov",
    "Department": "01000"
  },
    {
    "Name": "Sidorov",
    "Department": "01000"
  },
    {
    "Name": "Sidorov",
    "Department": "01100"
  },
  {
    "Name": "Kozlov",
    "Department": "72110"
  }
]



Нужно из этого массива собрать иерархию уникальных "Department" с вложенностью. Логика вложенности такая, узлами всегда будут "Department" у которых последние 3 символа "000". например для всех Department 72000 дочерними будут "Department": "72100", для этого значения дочерними будут "Department": "72110" и т.д.

На выходе должно получиться примерно вот это
Код: javascript
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
[
{"id": 1,
 "ParentId": null,
 "Departament":01000,
 "children":[{
    "id": 3,
   "ParentId": 1,
   "Departament":01100
   
 }]
},
{"id": 2,
 "ParentId": null,
 "Departament":72000,
 "children":[{
    "id": 4,
   "ParentId": 2,
   "Departament":72100,
   "children":[{
      "id": 5,
     "ParentId": 4,
     "Departament":72110
   
 }]
   
 }]
}
]

...
Рейтинг: 0 / 0
23.03.2016, 12:57
    #39198724
Petro123
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Разобрать jSON обьект
drummer84всю голову сломал.
и где попытки кода? ))
...
Рейтинг: 0 / 0
24.03.2016, 09:35
    #39199297
Areostar
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Разобрать jSON обьект
Код: javascript
1.
2.
3.
4.
5.
jQuery:
 var content = $.parseJSON(data)

JavaScript:
 var obj = JSON.parse(text);



Далее смотрите в отладчик!

Возможно массив будет вложенным
...
Рейтинг: 0 / 0
24.03.2016, 09:41
    #39199300
drummer84
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Разобрать jSON обьект
Да, вот что сейчас есть, собрал массив из Department у которых последние 3 символа "000".
Правильной дорогой идут? Куда двигаться дальше ?
Код: javascript
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
function myfunc(data){
            var nodeitem = [],
                 otdel = null,
                 parentId = null,
                 len = data.length,
                 currentID ;

   data.sort(function(a,b){return +a.Department > +b.Department ? 1 : -1});


            for (var i = j = 0; i < len; i++) {
                
                currentID = data[i].Department
                if(currentID.substring(2,5) ==="000"){
                    if (otdel !== currentID){
                         otdel = currentID;
                         nodeitem.push({ 
                              Department:otdel,
                              id:++j,
                              parentId:null
                            });
                    }
                }
              }
             
        };
...
Рейтинг: 0 / 0
Форумы / HTML, JavaScript, VBScript, CSS [игнор отключен] [закрыт для гостей] / Разобрать jSON обьект / 4 сообщений из 4, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]