Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Универсальная установка в input, JSON ответа(исключения) (https://javascript.ru/forum/misc/71696-universalnaya-ustanovka-v-input-json-otveta-isklyucheniya.html)

pokk 06.12.2017 06:28

Универсальная установка в input, JSON ответа(исключения)
 
Делаю "универсальный" разбор, json ответа и расставляю по полям,
но некоторые поля, сложные(составные) к примеру
поля IP_Access должны формироваться как IP_Access[i]+'/'+Mask_Access[i]
и вообще если IP_Access='0.0.0.0', вообще не отображать.
Ну и возможны другие исключения по параметрам, подскажите как, их сделать по феншую?
Ну или можно их вынести в отдельные функции, что бы не загромождать,основную работу.


var test="\"IP\":\"192.168.1.4\",\"Mask\":\"255.255.255.0\",\"Mask_Access\":[11,22,33],\"IP_Access\":[\"0.0.0.0\",\"0.0.0.0\",\"0.0.0.0\",\"0.0.0.0\"]";
		var jsonList = document.querySelectorAll('.act'); //JSON act
		var objJSON = eval('({' + test + '})');
		console.log(objJSON);
		for (var Key in objJSON) {
			//console.log(Key);
			//console.log(objJSON[Key]);
			if(typeof (objJSON[Key])=="object"){
				var i=0;
				for (var Key2 in objJSON[Key]) {
					i++;
					//console.log(objJSON[Key][Key2]);
					document.getElementById('id_'+Key+'_'+i).value=objJSON[Key][Key2];
				}
			}else{
				document.getElementById('id_'+Key).value=objJSON[Key];
			}

		}

pokk 07.12.2017 08:10

В общем сделал как-то так.
var Mask_temp;
function Handler_Mask_Access(key,value){
	Mask_temp=value;
}
//==================================================================================================
function Handler_IP_Access(key,value){
	if(typeof value=="object"){
		var k=0;
		for (var i in value) {
			console.log(i);
			console.log(value[i]);
			k++;
			document.getElementById('id_'+key+'_'+k).value=value[i]+'/'+Mask_temp[i];		 
		}
	}else{
		//console.log("");	
	}
}
//==================================================================================================
function GetPage(link){
var test="\"IP\":\"192.168.1.4\",\"Mask\":\"255.255.255.0\",\"Mask_Access\":[11,22,33],\"IP_Access\":[\"0.0.0.0\",\"0.0.0.0\",\"0.0.0.0\",\"0.0.0.0\"],\"ComReadSNMP\":\"public\",\"ComWriteSNMP\":\"public\",\"IpTrap\":[\"192.168.1.63\",\"192.168.1.63\"],\"Comm\":[\"public\",\"public\"],\"PortTrap\":[162,288],\"TrapCheckbox\":[1,0],\"Gateway\":\"192.168.1.4\"";
		//var test="\"IP\":\"192.168.1.4\",\"Mask\":\"255.255.255.0\",\"IP_Access\":[\"0.0.0.0\",\"0.0.0.0\",\"0.0.0.0\",\"0.0.0.0\"]";
		var jsonList = document.querySelectorAll('.act'); //JSON act
		var objJSON = eval('({' + test + '})');
		
		for (var Key in objJSON) {
			// console.log(Key);
			// console.log(objJSON[Key]);

			var Funct='Handler_'+Key;
			//console.log(Funct);				
			if (typeof window[Funct] == 'function'){
				//---------------------------------------------------------------------------
				//----Обработчик текушего поля найдет запускаем его  ------------------------
				//---------------------------------------------------------------------------				
					eval(Funct+'(Key,objJSON[Key])');
			}else{
				//---------------------------------------------------------------------------
				//----Нету обработчика текушего поля значит по дефолту выставляем поля-------
				//---------------------------------------------------------------------------
					if(typeof (objJSON[Key])=="object"){
						var i=0;
						for (var Key2 in objJSON[Key]) {
							i++;
							//console.log(objJSON[Key][Key2]);
							//console.log('id_'+Key+'_'+i);
							document.getElementById('id_'+Key+'_'+i).value=objJSON[Key][Key2];
						}
					}else{
						//console.log('id_'+Key);
						document.getElementById('id_'+Key).value=objJSON[Key];
					}
				//---------------------------------------------------------------------------
			}
		}
}


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