Вернуть JSON из функции javascript

Я хочу получить широту и долготу событий по щелчку в листовке и вернуть долготу широты в JSON для следующего кода: - Какой код JSON я должен включить, чтобы получить результат в следующем формате: -

{
    click_1: {
        lattitude: "bac",
        longtude: "cde"
    }
    click_2: {
        lattitude: "bac",
        longtude: "cde"
    }
}
 <html>
    <head>
    <body>
    <button name = "GetJSON" value = "OK" type = "button" onclick = "getJSON()">getJSON</button>  
    </body>
    <link rel = "stylesheet" href = "https://unpkg.com/[email protected]/dist/leaflet.css"
       integrity = "sha512-Rksm5RenBEKSKFjgI3a41vrjkw4EVPlJ3+OiI65vTjIdo9brlAacEuKOiQ5OFh7cOI1bkDwLqdLw3Zg0cRJAAQ= = "
       crossorigin = ""/>
    <!-- Make sure you put this AFTER Leaflet's CSS -->
     <script src = "https://unpkg.com/[email protected]/dist/leaflet.js"
       integrity = "sha512-/Nsx9X4HebavoBvEBuyp3I7od5tA0UzAxs+j83KgC8PU0kgB4XiK4Lfe4y4cgBtaRJQEIFCW+oC506aPT2L1zw= = "
       crossorigin = ""></script>

        <div id = "mapid"></div>
        <style>
        #mapid { height: 180px; }
        </style>

        <script>
        var mymap = L.map('mapid').setView([51.505, -0.09], 13);
        L.tileLayer('https://api.tiles.mapbox.com/v4/{id}/{z}/{x}/{y}.png?access_token=pk.eyJ1IjoicHJpeWFua2FtbWkiLCJhIjoiY2l1amxrOWptMDAwNTJ6cm81NngxbXA3cSJ9.8UCyiu8D0ShQNzEs5ze9dw', {
        attribution: 'Map data &copy; <a href = "http://openstreetmap.org">OpenStreetMap</a> contributors, <a href = "http://creativecommons.org/licenses/by-sa/2.0/">CC-BY-SA</a>, Imagery © <a href = "http://mapbox.com">Mapbox</a>',
        maxZoom: 18,
        id: 'mapbox.streets',
        accessToken: 'your.mapbox.access.token'
    }).addTo(mymap);
    function onMapClick(e) {
        // alert("You clicked the map at " + e.latlng);
        // document.write(' <?php insert(e.latlng); ?> ');

    }
    mymap.on('click', onMapClick);

    </script>

    </head>
    </html>

Это не JSON, а объект (который должен быть массивом объектов, imho)

Andreas 04.04.2018 07:05

Вы сами пытались это сделать / у вас есть какие-то конкретные проблемы?

Lucas Hendren 04.04.2018 07:35
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
В настоящее время производительность загрузки веб-сайта имеет решающее значение не только для удобства пользователей, но и для ранжирования в...
Безумие обратных вызовов в javascript [JS]
Безумие обратных вызовов в javascript [JS]
Здравствуйте! Юный падаван 🚀. Присоединяйся ко мне, чтобы разобраться в одной из самых запутанных концепций, когда вы начинаете изучать мир...
Система управления парковками с использованием HTML, CSS и JavaScript
Система управления парковками с использованием HTML, CSS и JavaScript
Веб-сайт по управлению парковками был создан с использованием HTML, CSS и JavaScript. Это простой сайт, ничего вычурного. Основная цель -...
JavaScript Вопросы с множественным выбором и ответы
JavaScript Вопросы с множественным выбором и ответы
Если вы ищете платформу, которая предоставляет вам бесплатный тест JavaScript MCQ (Multiple Choice Questions With Answers) для оценки ваших знаний,...
1
2
3 043
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

Вы все делаете правильно, и вы получите широту и долготу с помощью кода ниже.

function onMapClick(e) {

            alert("latitude " + e.latlng.lat);
            alert("longitude " + e.latlng.lng);
        // alert("You clicked the map at " + e.latlng);
        // document.write(' <?php insert(e.latlng); ?> ');

    }

Я хочу вернуть json в следующем формате: - {click_1: {lattitude: "bac", longtude: "cde"} click_2: {lattitude: "bac", longtude: "cde"}} не во всплывающем окне

Gaurav 04.04.2018 08:04
Ответ принят как подходящий

Вы можете добавить данные в объект массива, чем сделать его json

 <script src = "https://unpkg.com/[email protected]/dist/leaflet.js"
   integrity = "sha512-/Nsx9X4HebavoBvEBuyp3I7od5tA0UzAxs+j83KgC8PU0kgB4XiK4Lfe4y4cgBtaRJQEIFCW+oC506aPT2L1zw= = "
   crossorigin = ""></script>

    <div id = "mapid"></div>
    <style>
    #mapid { height: 180px; }
    </style>

    <script>
     var JsonData = {}; 
     var mymap = L.map('mapid').setView([51.505, -0.09], 13);
     L.tileLayer('https://api.tiles.mapbox.com/v4/{id}/{z}/{x}/{y}.png?access_token=pk.eyJ1IjoicHJpeWFua2FtbWkiLCJhIjoiY2l1amxrOWptMDAwNTJ6cm81NngxbXA3cSJ9.8UCyiu8D0ShQNzEs5ze9dw', {
     attribution: 'Map data &copy; <a href = "http://openstreetmap.org">OpenStreetMap</a> contributors, <a href = "http://creativecommons.org/licenses/by-sa/2.0/">CC-BY-SA</a>, Imagery © <a href = "http://mapbox.com">Mapbox</a>',
     maxZoom: 18,
     id: 'mapbox.streets',
     accessToken: 'your.mapbox.access.token'
  }).addTo(mymap);

  var i =1;   
  function onMapClick(e) {
    // alert("You clicked the map at " + e.latlng);
    // document.write(' <?php insert(e.latlng); ?> ');
   console.info(e.latlng);
   var lat = e.latlng.lat;
   var lng = e.latlng.lng;
   var key = 'click_'+i;
   JsonData[key] = {latitude:lat,longtitude:lng };
   i++;
   console.info(JsonData); 
}
mymap.on('click', onMapClick);

</script>

Я хочу вернуть json в следующем формате: - {click_1: {lattitude: "bac", longtude: "cde"} click_2: {lattitude: "bac", longtude: "cde"}} не в консоли

Gaurav 04.04.2018 08:02

Я сказал, что вы можете изменить форму, как хотите, хорошо, я отредактировал ответы, надеюсь, это сработает для вас

Mohammad Raheem 04.04.2018 08:22

Другие вопросы по теме