Универсальная установка в 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]; } } |
В общем сделал как-то так.
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. |