Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- const dataJSON_IN = `{
- "sys_security_acl": [
- {
- "active": true,
- "admin_overrides": true,
- "any_fields": false,
- "any_tables": false,
- "application_id": 155931135900000002,
- "column_id": null,
- "condition": "(stateIN-5@-2@0@2)",
- "description": "",
- "name": "[Delete].itsm_request_task",
- "operation": "delete",
- "policy": "Open",
- "role_ids": "169951757498590336",
- "script": "",
- "sys_created_at": "2022-04-15 07:36:22",
- "sys_created_by": 163913798097018628,
- "sys_id": 165000818294108986,
- "sys_updated_at": "2022-04-15 07:36:22",
- "sys_updated_by": 163913798097018628,
- "table_id": 156950581217511178
- },
- {
- "active": true,
- "admin_overrides": false,
- "any_fields": false,
- "any_tables": false,
- "application_id": 156950344216170038,
- "column_id": 155931135900001086,
- "condition": "(stateNOT IN12@10@7)",
- "description": "",
- "name": "[Write].itsm_request_task.state",
- "operation": "write",
- "policy": "Changed",
- "role_ids": "169951757498590336",
- "script": "",
- "sys_created_at": "2022-04-04 14:25:19",
- "sys_created_by": 163913798097018628,
- "sys_id": 164908231991033578,
- "sys_updated_at": "2022-04-12 09:36:55",
- "sys_updated_by": 163913798097018628,
- "table_id": 156950581217511178
- },
- {
- "active": true,
- "admin_overrides": true,
- "any_fields": false,
- "any_tables": false,
- "application_id": 156950344216170038,
- "column_id": null,
- "condition": "(stateNOT IN12@7@10)",
- "description": "",
- "name": "[Write].itsm_request_task",
- "operation": "write",
- "policy": "Open",
- "role_ids": "156951063014647724,169951757498590336",
- "script": "",
- "sys_created_at": "2022-04-04 14:24:38",
- "sys_created_by": 163913798097018628,
- "sys_id": 164908227890279436,
- "sys_updated_at": "2022-04-04 14:24:38",
- "sys_updated_by": 163913798097018628,
- "table_id": 156950581217511178
- },
- {
- "active": true,
- "admin_overrides": true,
- "any_fields": false,
- "any_tables": false,
- "application_id": 156950344216170038,
- "column_id": null,
- "condition": "(stateNOT IN7@12)",
- "description": "",
- "name": "[Write].itsm_incident_task",
- "operation": "write",
- "policy": "Open",
- "role_ids": "156951063014647724,169951757498590336",
- "script": "",
- "sys_created_at": "2022-04-04 14:13:00",
- "sys_created_by": 163913798097018628,
- "sys_id": 164908158094836457,
- "sys_updated_at": "2022-04-04 14:13:00",
- "sys_updated_by": 163913798097018628,
- "table_id": 156950588012506154
- },
- {
- "active": true,
- "admin_overrides": true,
- "any_fields": false,
- "any_tables": false,
- "application_id": 156950344216170038,
- "column_id": null,
- "condition": "(stateIN-5@-2@0@2)",
- "description": "",
- "name": "[Delete].itsm_incident_task",
- "operation": "delete",
- "policy": "Changed",
- "role_ids": "169951757498590336",
- "script": "",
- "sys_created_at": "2022-04-04 13:40:00",
- "sys_created_by": 163913798097018628,
- "sys_id": 164907960095466582,
- "sys_updated_at": "2022-05-27 17:20:17",
- "sys_updated_by": 164726140438057134,
- "table_id": 156950588012506154
- },
- {
- "active": true,
- "admin_overrides": true,
- "any_fields": false,
- "any_tables": false,
- "application_id": 156950344216170038,
- "column_id": 155931135900001086,
- "condition": "(stateNOT IN12@7)",
- "description": "",
- "name": "[Write].itsm_incident_task.state",
- "operation": "write",
- "policy": "Changed",
- "role_ids": "169951757498590336",
- "script": "",
- "sys_created_at": "2022-04-04 13:33:29",
- "sys_created_by": 163913798097018628,
- "sys_id": 164907920997296708,
- "sys_updated_at": "2022-04-04 14:11:48",
- "sys_updated_by": 163913798097018628,
- "table_id": 156950588012506154
- }
- ]
- }`
- function modifyAndCleanData(dataJSON_IN, keysToRemove) {
- // Модифицируем строку JSON, добавляя кавычки вокруг числовых значений
- let modifiedJSON = dataJSON_IN.replace(/"(\w+)": (\d{15,})/g, '"$1": "$2"');
- // Парсим модифицированную строку JSON обратно в объект JavaScript
- let data = JSON.parse(modifiedJSON);
- // Удаляем указанные ключи из каждого элемента в массиве sys_security_acl
- data.sys_security_acl.forEach(acl => {
- keysToRemove.forEach(key => {
- delete acl[key];
- });
- });
- return data;
- }
- // Пример использования функции
- const keysToRemove = [
- "description",
- "name",
- "sys_created_at",
- "sys_created_by",
- "sys_id",
- "sys_updated_at",
- "sys_updated_by",
- 'application_id'
- ];
- const modifiedData = modifyAndCleanData(dataJSON_IN, keysToRemove);
- // print(JSON.stringify(modifiedData, null, 2));
- print( createSimpleRecordCode(JSON.stringify(modifiedData, null, 2)) )
- function createSimpleRecordCode(dataJSON) {
- let modifiedJSON = dataJSON.replace(/"(\w+)": (\d{15,})/g, '"$1": "$2"');
- const data = JSON.parse(modifiedJSON);
- if (!data || !data.sys_security_acl || !Array.isArray(data.sys_security_acl)) {
- console.error('Invalid input data');
- return '';
- }
- let code = '';
- data.sys_security_acl.forEach((item, index) => {
- const currentVarName = `current${index}`; // Создаем уникальное имя переменной для каждой итерации
- code += `const ${currentVarName} = new SimpleRecord('sys_security_acl');\n`;
- Object.keys(item).forEach(key => {
- let value = item[key];
- if (['description', 'name', 'sys_created_at', 'sys_created_by', 'sys_id', 'sys_updated_at', 'sys_updated_by'].includes(key)) {
- return;
- }
- value = JSON.stringify(value); // JSON.stringify обрабатывает все типы значений корректно
- code += ` ${currentVarName}.setValue('${key}', ${value});\n`; // Используем уникальное имя переменной
- });
- code += ` ${currentVarName}.insert();\n\n`; // Завершаем блок кода для текущей итерации
- });
- return code;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement