Javascript-форум (https://javascript.ru/forum/)
-   Работа (https://javascript.ru/forum/job/)
-   -   Нужен скрипт, заменяющий названия json-переменных по заданному шаблону (https://javascript.ru/forum/job/72967-nuzhen-skript-zamenyayushhijj-nazvaniya-json-peremennykh-po-zadannomu-shablonu.html)

qzaki 10.03.2018 13:45

Нужен скрипт, заменяющий названия json-переменных по заданному шаблону
 
Вложений: 1
Задание:
Имеется фронтенд на vue, по запросу сервер отправляет данные в json-формате, необходимо по таблице вида
Код:

(имя переменной;имя переменной родителя;приоритет сортировки;параметры оформления(vuetify);название на русском)
, ранее загруженной при авторизации пользователя (формат хранения может быть любой), получить html для показа всех значений переменных.
Проблемы следующие:
1. названия переменных могут меняться, в таком случае, если в таблице нет подходящей строки с описанием нужной переменной, необходимо добавить переменную с ее названием (без перевода) с шаблоном от родителя в конец абзаца родителя.
2. между иерархией родитель-потомок может быть перечисление, например "поставщики.0.поставщик", что, впрочем, шаблоны менять не должно, разве что расширит сам список
3. количество переменных около 1000, соответственно около 1000 известных названий, необходимо разбить циклы по родителям, оптимизировать поиск

пример json:
Код:

{
        "currentcontractstage" : "E",
        "customer" : {
                "regnum" : "03483001963",
                "fullname" : "Муниципальное бюджетное общеобразовательное учреждение средняя общеобразовательная школа № 1 Щёлковского муниципального района Московской области",
                "registrationdate" : "2000-03-17",
                "inn" : "5050031980",
                "kpp" : "505001001",
                "okpo" : "51944582",
                "customercode" : "35050031980505001001"
        },
        "documentbase" : " б/н",
        "executionperiod" : {
                "startdate" : "2015-01-01",
                "stages" : {
                        "enddate" : "2015-12-31"
                },
                "enddate" : "2015-12-31"
        },
        "filename" : "contract_3505003198015000002_20451347.xml",
        "finances" : {
                "budgetfunds" : {
                        "budget" : {
                                "code" : "48030297",
                                "name" : "Щелковский муниципальный район Московской области"
                        },
                        "oktmo" : {
                                "code" : "46659101",
                                "name" : "Щёлково"
                        },
                        "budgetlevel" : "13",
                        "stages" : {
                                "enddate" : "2015-12-31",
                                "payments" : {
                                        "kbk" : "00000000000000000223",
                                        "paymentmonth" : "1",
                                        "paymentyear" : "2015",
                                        "paymentsum" : "25000.00",
                                        "paymentsumrur" : "25000.00"
                                }
                        }
                }
        }
}

пример того, что должно получиться (сама схема должна выглядеть несколько иначе - названия должны располагаться над списками потомков, и, конечно, быть в правильном оформлении и переведены в нормальные названия):

<tbody><tr><th>currentcontractstage</th><td>E</td></tr><tr><th>customer</th><td><table border="1"><tbody><tr><th>regnum</th><td>03483001963</td></tr><tr><th>fullname</th><td>Муниципальное бюджетное общеобразовательное учреждение средняя общеобразовательная школа № 1 Щёлковского муниципального района Московской области</td></tr><tr><th>registrationdate</th><td>2000-03-17</td></tr><tr><th>inn</th><td>5050031980</td></tr><tr><th>kpp</th><td>505001001</td></tr><tr><th>okpo</th><td>51944582</td></tr><tr><th>customercode</th><td>35050031980505001001</td></tr></tbody></table></td></tr><tr><th>documentbase</th><td> б/н</td></tr><tr><th>executionperiod</th><td><table border="1"><tbody><tr><th>startdate</th><td>2015-01-01</td></tr><tr><th>stages</th><td><table border="1"><tbody><tr><th>enddate</th><td>2015-12-31</td></tr></tbody></table></td></tr><tr><th>enddate</th><td>2015-12-31</td></tr></tbody></table></td></tr><tr><th>filename</th><td>contract_3505003198015000002_20451347.xml</td></tr><tr><th>finances</th><td><table border="1"><tbody><tr><th>budgetfunds</th><td><table border="1"><tbody><tr><th>budget</th><td><table border="1"><tbody><tr><th>code</th><td>48030297</td></tr><tr><th>name</th><td>Щелковский муниципальный район Московской области</td></tr></tbody></table></td></tr><tr><th>oktmo</th><td><table border="1"><tbody><tr><th>code</th><td>46659101</td></tr><tr><th>name</th><td>Щёлково</td></tr></tbody></table></td></tr><tr><th>budgetlevel</th><td>13</td></tr><tr><th>stages</th><td><table border="1"><tbody><tr><th>enddate</th><td>2015-12-31</td></tr><tr><th>payments</th><td><table border="1"><tbody><tr><th>kbk</th><td>00000000000000000223</td></tr><tr><th>paymentmonth</th><td>1</td></tr><tr><th>paymentyear</th><td>2015</td></tr><tr><th>paymentsum</th><td>25000.00</td></tr><tr><th>paymentsumrur</th><td>25000.00</td></tr></tbody></table></td></tr></tbody></table></td></tr></tbody></table></td></tr></tbody></table></td></tr></tbody>

(скрин в аттаче)

Специалист, который делает нам фронтенд сказал, что так сделать вообще нельзя, тем не менее именно так нам сделать и нужно. Поэтому, если вы можете реализовать такую схему, просьба написать ЛС с указанием стоимости, к сожалению сколько стоит такое решение не знаю, поэтому написать нмцк сейчас не могу; просьба отнестись с пониманием.

qzaki 10.03.2018 22:41

Вложений: 2
алгоритм в аттаче

laimas 11.03.2018 12:41

Цитата:

Сообщение от qzaki
алгоритм в аттаче

Там что-то можно увидеть? )

mshdn 12.03.2018 06:48

напишите на
mshdn@rambler.ru

qzaki 12.03.2018 10:56

Цитата:

Сообщение от laimas (Сообщение 480260)
Там что-то можно увидеть? )

нельзя, откомментировал, как только создал; кину на почту, если интересно

laimas 12.03.2018 12:50

Цитата:

Сообщение от qzaki
кину на почту, если интересно

У меня и без этого много работы. А то что выставлено, а посмотреть нельзя, это плохо, для вас же.

Если данные, это дерево, и нужно визуализировать его, то сделать кончено можно. Трудности только с объектом, который выбран для визуализации - таблица. Но можно и с ней, нужно только выяснять вложенность и количество элементов на каждом уровне вложения, для каждой ветви дерева. Это для того, чтобы строить нужную структуру таблицы.

qzaki 13.03.2018 11:05

вопрос закрыт


Часовой пояс GMT +3, время: 07:05.