 
			
				02.10.2020, 00:46
			
			
			
		  
	 | 
 
	
		
		
		
			
			| 
			
				
				
				 Кандидат Javascript-наук 
				
				
				
				
	
 
 
 
			 | 
			  | 
			
				
				
					Регистрация: 20.09.2020 
					
					
					
						Сообщений: 132
					 
					
					
			
		
 
		 
		
			 | 
		 
		 
		
	 | 
 
	| 
	
	
		
		
			
			 
				Что правильнее - object или ручная запаковка или еще что-то?
			 
			
		
		
		
		Добрый день, 
 
о себе - нуб в ЖС, но имею большой опыт в С/С++ особенно в суперкомпьютинге. 
 
Что мне сейчас надо. Пишу веб морду, которая общается с высокопроизводительным софтвером на линукс кластере. В морде есть много - около сотни параметров и таблиц, часто представляющие собой таблицы переменной длины. 
 
Мне надо эту конфигурацию передать в софтвер, иногда надо из софтвера прочитать все эти параметры. 
 
Вижу два варианта: 
 
1. засовываю все эти структуры в object, далее все очевидно, при передаче вызываю JSON.stringify, а когда получаю с софтвера данные - вызываю JSON.parse. 
 
2. переменные и массивы все как есть живут обычным образом, а когда я их посылаю, то в ручную сам их все пакую. В обратную сторону - все также. 
 
Данных для запаковки примерно от 10КБайт до 1МБайт. 
 
Надобно не часто, но хочется, чтобы это "летало" на любом ведроиде в том числе и прошлого столетия. 
 
Как правильнее, пожалуйста, посоветуйте! 
 
Спасибо! 
		
	
		
		
		
		
		
		
	
		
		
	
	
	 | 
 
 
	 
		 | 
 
 
	
	
	
		
	
		
		
		
			
			 
			
				02.10.2020, 05:38
			
			
			
		  
	 | 
 
	
		
		
		
			  | 
			
			
				
				
				 Тлен 
				
				
				
				
	
 
 
 
			 | 
			  | 
			
				
				
					Регистрация: 02.01.2010 
					
					
					
						Сообщений: 6,601
					 
					
					
			
		
 
		 
		
			 | 
		 
		 
		
	 | 
 
	| 
	
	
		
		
		
		
		 JSON. Движки заточены под это, нагрузка минимальна. Собственный паковщик может и выиграет в объёме передаваемых данных, но проиграет в нагрузке и, само собой, поддержке. 
		
	
		
		
		
		
		
			
				__________________ 
				29375, 35 
 
			 
		
		
		
		
	
		
		
	
	
	 | 
 
 
	 
		 | 
 
 
	
	
	
		
	
		
		
		
			
			 
			
				02.10.2020, 09:03
			
			
			
		  
	 | 
 
	
		
		
		
			
			| 
			
				
				
				 Кандидат Javascript-наук 
				
				
				
				
	
 
 
 
			 | 
			  | 
			
				
				
					Регистрация: 20.09.2020 
					
					
					
						Сообщений: 132
					 
					
					
			
		
 
		 
		
			 | 
		 
		 
		
	 | 
 
	
	
	
		
		
		
		
		Спасибо большое за ответ! 
Я наверное неправильно вопрос сформулировал, простите меня, пожалуйста. То, что передавать буду JSONом - это однозначно. А вот как мне эти переменные и массивы внутри самой морды хранить и адрессировать?
 
Вот пример: 
у меня есть около 20 полей
 
<input type="text" id="data_name" size=6">
 
с разными именами data_name, а также с десяток массивов, длины которых определяются заполнением таких input и того, что в них содержится (я эти формы в ЖС на лету генерю).
 
То есть программа, которая это все обрабатывает - тоже моя, я могу вход JSON парсить как мне захочется.
 
Правильно ли я понимаю, что мне надо все мои данные из input сразу воткнуть в какой-то object, и протаскивать данные просто запаковывая весь этот object в JSON строку, или есть какой-то более элегантный способ?
 
Спасибо!  
		
	
		
		
		
		
		
		
	
		
		
	
	
	 | 
 
 
	 
		 | 
 
 
	
	
	
		
	
		
		
		
			
			 
			
				02.10.2020, 09:54
			
			
			
		  
	 | 
 
	
		
		
		
			  | 
			
			
				
				
				 Профессор 
				
				
				
				
	
 
 
 
			 | 
			  | 
			
				
				
					Регистрация: 03.02.2020 
					
					
					
						Сообщений: 2,777
					 
					
					
			
		
 
		 
		
			 | 
		 
		 
		
	 | 
 
	
	
	
		
		
		
		
		А что тут не элегантного? 
let array1 = [...];
....
let arrayM =[....];
let obj = {};
obj.data_name1 = document.getElementById('data_name1').value;
...
obj.data_nameN = document.getElementById('data_nameN').value;
obj.array1 = array1;
...
obj.arrayM = arrayM;
let sjson = JSON.stringify(obj)
 
		
	
		
		
		
		
		
		
	
		
		
	
	
	 | 
 
 
	 
		 | 
 
 
	
	
	
		
	
		
		
		
			
			 
			
				02.10.2020, 11:49
			
			
			
		  
	 | 
 
	
		
		
		
			
			| 
			
				
				
				 Аспирант 
				
				
				
				
	
 
 
 
			 | 
			  | 
			
				
				
					Регистрация: 01.03.2013 
					
					
					
						Сообщений: 77
					 
					
					
			
		
 
		 
		
			 | 
		 
		 
		
	 | 
 
	
	
	
		
		
		
		
		
	
 
	
		
			Сообщение от Was-Ja
			 
		
	 | 
 
	| 
		Правильно ли я понимаю, что мне надо все мои данные из input сразу воткнуть в какой-то object, и протаскивать данные просто запаковывая весь этот object в JSON строку, или есть какой-то более элегантный способ?
	 | 
 
	
 
 Да, по-моему самое просто и элегантное решение    
		
	
		
		
		
		
		
		
	
		
		
	
	
	 | 
 
 
	 
		 | 
 
 
	
	
	
		
	
		
		
		
			
			 
			
				02.10.2020, 12:16
			
			
			
		  
	 | 
 
	
		
		
		
			  | 
			
			
				
				
				 Тлен 
				
				
				
				
	
 
 
 
			 | 
			  | 
			
				
				
					Регистрация: 02.01.2010 
					
					
					
						Сообщений: 6,601
					 
					
					
			
		
 
		 
		
			 | 
		 
		 
		
	 | 
 
	| 
	
	
		
		
		
		
		 Простое решение - использовать какие либо библиотеки с data binding,  которые напрямую тебе свяжут json структуру с input'ами, освобождая от ручной работы. Например Vue. 
		
	
		
		
		
		
		
			
				__________________ 
				29375, 35 
 
			 
		
		
		
		
	
		
		
	
	
	 | 
 
 
	 
		 | 
 
 
	
	
	
		
	
		
		
		
			
			 
			
				03.10.2020, 12:11
			
			
			
		  
	 | 
 
	
		
		
		
			
			| 
			
				
				
				 Кандидат Javascript-наук 
				
				
				
				
	
 
 
 
			 | 
			  | 
			
				
				
					Регистрация: 20.09.2020 
					
					
					
						Сообщений: 132
					 
					
					
			
		
 
		 
		
			 | 
		 
		 
		
	 | 
 
	
	
	
		
		
		
		
		Спасибо большое за советы!!! 
Да, я понимаю, что то, что предлагает voraa - достаточно просто и надежно.
 
Я просто имел ввиду, что можно как-то в
 
<input type="text" id="obj.data_name" size=6">
 
сразу в obj.data_name написать имя и поле объекта, но, повидимому, это реализуемо только, как Aetae посоветовал, через Vue...
 
Все, разобрался что да как, огромное-преогромное всем участвовавшим и советовавшим СПАСИБО!!!  
		
	
		
		
		
		
		
		
	
		
		
	
	
	 | 
 
 
	 
		 | 
 
 
	
	
	
		
	
		
		
		
			
			 
			
				03.10.2020, 15:45
			
			
			
		  
	 | 
 
	
		
		
		
			  | 
			
			
				
				
				 Профессор 
				
				
				
				
	
 
 
 
			 | 
			  | 
			
				
				
					Регистрация: 03.02.2020 
					
					
					
						Сообщений: 2,777
					 
					
					
			
		
 
		 
		
			 | 
		 
		 
		
	 | 
 
	
	
	
		
		
		
		
		И тащить Vue вместо пяти строк? 
document.querySelectorAll('input[type=text]').forEach(el => {
  el.addEventListener('input', (ev) => {
     obj[ev.target.id] = ev.target.value
  })
})
 
		
	
		
		
		
		
		
		
	
		
		
	
	
	 | 
 
 
	 
		 | 
 
 
	
	
	
		
	
		
		
		
			
			 
			
				03.10.2020, 16:02
			
			
			
		  
	 | 
 
	
		
		
		
			  | 
			
			
				
				
				 Профессор 
				
				
				
				
	
 
 
 
			 | 
			  | 
			
				
				
					Регистрация: 27.05.2010 
					
					
					
						Сообщений: 33,150
					 
					
					
			
		
 
		 
		
			 | 
		 
		 
		
	 | 
 
	
	
	
		
		
		
		
		voraa,
    
document.querySelectorAll('input[type=text]').forEach(el => {
  el.addEventListener('input', _ => obj[el.id] = el.value)
})
 
		
	
		
		
		
		
		
		
	
		
		
	
	
	 | 
 
 
	 
		 | 
 
 
	
	
	
		
	
		
		
		
			
			 
			
				03.10.2020, 18:28
			
			
			
		  
	 | 
 
	
		
		
		
			  | 
			
			
				
				
				 Тлен 
				
				
				
				
	
 
 
 
			 | 
			  | 
			
				
				
					Регистрация: 02.01.2010 
					
					
					
						Сообщений: 6,601
					 
					
					
			
		
 
		 
		
			 | 
		 
		 
		
	 | 
 
	
	
	
		
		
		
		
		voraa,  рони, ну так тут обратной связи от изменения объекта не будет. И эти "пять" строк придётся повторять из раза в раз меняя в зависимости от структуры. А попытки универсализации выльются в итоге в написание своей мини-либы, что всяко будет хуже уже имеющихся.) 
Тащить же Vue необязательно, полно data-binding либ по проще, в том числе и  от местных ребят.
 
Но честно говоря брать сейчас vue для меня как брать раньше jquery: подключил и фигач, не парь мозги и не трать время на велосипеды.  
		
	
		
		
		
		
		
			
				__________________ 
				29375, 35 
 
			 
		
		
		
		
		
						  
				
				Последний раз редактировалось Aetae, 03.10.2020 в 18:32.
				
				
			
		
		
	
		
		
	
	
	 | 
 
 
	 
		 | 
 
 
 
 |  
  |