繁体   English   中英

如何从PHP脚本中获取JSON

[英]How to fetch JSON from a php script

我可以使用以下方法在Google地图上绘制点列表:

(function() {

    window.onload = function() {

        var map = new google.maps.Map(document.getElementById("map"), {
          center: new google.maps.LatLng(41.6, -0.88),
          zoom: 12,
          mapTypeId: google.maps.MapTypeId.ROADMAP
        });


        // Creating the JSON data

         var json = [
                {
            "nombre": "NAME1",
            "lat": "41.653",
            "long": "-0.907922",

        },
        {
            "nombre": "NAME2",
            "lat": "41.6693",
            "long": "-0.891317",

        },

        {
            "nombre": "NAME3",
            "lat": "41.6502",
            "long": "-0.875212",
        }
    ];


        var infoWindow = new google.maps.InfoWindow();

        for (var i = 0, length = json.length; i < length; i++) {
            var data = json[i],
                latLng = new google.maps.LatLng(data.lat, data.long);

            // Creating a marker and putting it on the map
            //var iconBase = 'https://dea-srl.net/domenico/traking/js/';
            var iconBase = 'https://maps.google.com/mapfiles/kml/shapes/';
            var marker = new google.maps.Marker({
                position: latLng,
                map: map,
                title: data.nombre,
                icon: iconBase + 'schools_maps.png'
                });

            (function(marker, data) {

                // Attaching a click event to the current marker
                google.maps.event.addListener(marker, "click", function(e) {
                    infoWindow.setContent(data.nombre);
                    infoWindow.open(map, marker);
                });

            })(marker, data);
        }
    }

})();

它运作良好,但我需要从生成的json字符串格式读取我的位置,如下所示:

{
    "locations": [
        {
            "nombre": "Name1",
            "lat": "41.6504",
            "long": "-0.879137",

        },
        {
            "nombre": "NAME2",
            "lat": "41.6405",
            "long": "-0.893266",

        }    
 ]
}

这个Json是从php脚本生成的,可以通过以下网址获得: http://myscript.php

我的问题是,如何从php脚本中获取JSON并将其放入JavaScript变量中?

对象具有相同的结构。

上面写着json.lengthjson[i] ,分别使用yourvariable.locations.lengthyourvariable.locations[i]

您可以自己构建变量。

var json = [];

$.each(yourvariable.locations[0], function(index, value) {

var step = {
   nombre : value.nombre,
   lat : value.lat,
   lon : value.long
}
json.push(step);

});

您从myscript.php获得的只是一个字符串。 您需要将其转换为JavaScript对象

有很多方法可以做到这一点

1.<script> var json = <?php echo $JSON; ?></script>

要么

2. var json = JSON.parse("<?php echo $JSON;?>");

或者,您也可以考虑更改myscript.php以回显类似的内容

Var json = "$JSON_from_php";

并将其添加到dom中

<script src="myscript.php" async="async"></script>

或者你可以通过ajax获取它

$.get("myscript.php",function(json) {
    //json will contain the data.
});

在地图生成器中使用json.locations

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM