Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 21.07.2018, 12:40
Профессор
Отправить личное сообщение для Янковиц Посмотреть профиль Найти все сообщения от Янковиц
 
Регистрация: 17.11.2014
Сообщений: 335

Создать json строки
Добрый день. Есть верстка:
<div class="google-map-marks">
	<div class="google-map-center"><span class="latitude">57.71626291400055</span><span class="longitude">43.94435294999994</span></div>
	<div class="marker"><span class="latitude">60.207426504475734</span><span class="longitude">35.94630607499994</span><span class="delet"></span></div>
	<div class="marker"><span class="latitude">60.81312576191666</span><span class="longitude">61.43458732499994</span><span class="delet"></span></div>
	<div class="marker"><span class="latitude">45.660621650435466</span><span class="longitude">52.64552482499994</span><span class="delet"></span></div>
	<div class="marker"><span class="latitude">45.537632112877695</span><span class="longitude">79.01271232499994</span><span class="delet"></span></div>
	<div class="marker"><span class="latitude">57.196191095006554</span><span class="longitude">79.36427482499994</span><span class="delet"></span></div>
</div>

Нужно на jQuery собрать данные со всех элементов и создать json строку:
"contents": [
    {
      "id": 1,
      "lat": 57.71626291400055,
      "lng": 43.94435294999994
    },
    {
      "id": 2,
      "lat": 60.207426504475734,
      "lng": 35.94630607499994
    }
  ],
Ответить с цитированием
  #2 (permalink)  
Старый 21.07.2018, 13:07
Профессор
Отправить личное сообщение для Янковиц Посмотреть профиль Найти все сообщения от Янковиц
 
Регистрация: 17.11.2014
Сообщений: 335

Разобрался:
var _this = $(this),
			menu = {},
			i = 0;
		_this.parent().prev().children('div').each(function (i) {
			menu["mark" + i++] = {
				lat: $(this).children('.latitude').html(),
				lng: $(this).children('.longitude').html()
			};
		});
		var json = '['+JSON.stringify(menu)+']';
Ответить с цитированием
  #3 (permalink)  
Старый 21.07.2018, 13:53
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 11,629

var jsn = JSON.stringify($.map($('div.google-map-marks div'), function(e, i) {
    e = e.childNodes;
    return {id: ++i, latitude: e[0].textContent, longitude: e[1].textContent}
}))

console.log(jsn )
Ответить с цитированием
  #4 (permalink)  
Старый 21.07.2018, 16:34
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 27,833

Янковиц,
<!DOCTYPE html>

<html>
<head>
  <title>Untitled</title>
  <meta charset="utf-8">
  <style type="text/css">
   span{
       margin: 5px;
   }

  </style>

</head>

<body>
<div class="google-map-marks">
	<div class="google-map-center"><span class="latitude">57.71626291400055</span><span class="longitude">43.94435294999994</span></div>
	<div class="marker"><span class="latitude">60.207426504475734</span><span class="longitude">35.94630607499994</span><span class="delet"></span></div>
	<div class="marker"><span class="latitude">60.81312576191666</span><span class="longitude">61.43458732499994</span><span class="delet"></span></div>
	<div class="marker"><span class="latitude">45.660621650435466</span><span class="longitude">52.64552482499994</span><span class="delet"></span></div>
	<div class="marker"><span class="latitude">45.537632112877695</span><span class="longitude">79.01271232499994</span><span class="delet"></span></div>
	<div class="marker"><span class="latitude">57.196191095006554</span><span class="longitude">79.36427482499994</span><span class="delet"></span></div>
</div>
<script>

  var spn = document.querySelectorAll('.latitude,.longitude');
  var obj = {};
  var arr = [].reduce.call(spn, function(a,b,i) {
  i % 2 ? (obj.lng = b.textContent,obj = {}):(a.push(obj),obj.id = a.length,obj.lat = b.textContent )
  return a
  }, []);
  document.write('<br>'+JSON.stringify(arr, null, 4))
  </script>

</body>
</html>
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как создать get-service для данных в формате JSON? Jaxx Общие вопросы Javascript 0 26.12.2017 17:24
Создать Json объект на основе разметки Scantraxx Общие вопросы Javascript 18 12.12.2016 17:06
Помощь в преобразовании строки json dimke931 jQuery 42 28.05.2015 15:13
Не могу распарсить JSON. gorenie jQuery 3 29.11.2013 21:26
Как создать строку JSON с переменными? Артем AJAX и COMET 4 01.11.2008 12:12