Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/75.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用javascript的JSON解析返回[object]_Javascript_Jquery_Json_Google Maps - Fatal编程技术网

使用javascript的JSON解析返回[object]

使用javascript的JSON解析返回[object],javascript,jquery,json,google-maps,Javascript,Jquery,Json,Google Maps,我正在制作一个简单的网页,将地址作为输入,并使用googlegeocodeapi返回该地址的纬度和经度。我无法处理结果。我想从JSON中选择特定的元素,即从google返回的响应中选择纬度和经度。请帮助我,我不熟悉JSON。以下是JSON的JSON: { "results" : [ { "address_components" : [ { "long_name" : "Jabalpur", "short_na

我正在制作一个简单的网页,将地址作为输入,并使用google
geocode
api
返回该地址的纬度和经度。我无法处理结果。我想从
JSON
中选择特定的元素,即从google返回的响应中选择纬度和经度。请帮助我,我不熟悉
JSON
。以下是JSON的
JSON

    {
  "results" : [
    {
      "address_components" : [
        {
          "long_name" : "Jabalpur",
          "short_name" : "Jabalpur",
          "types" : [ "locality", "political" ]
        },
        {
          "long_name" : "Jabalpur",
          "short_name" : "Jabalpur",
          "types" : [ "administrative_area_level_2", "political" ]
        },
        {
          "long_name" : "Madhya Pradesh",
          "short_name" : "MP",
          "types" : [ "administrative_area_level_1", "political" ]
        },
        {
          "long_name" : "India",
          "short_name" : "IN",
          "types" : [ "country", "political" ]
        },
        {
          "long_name" : "482001",
          "short_name" : "482001",
          "types" : [ "postal_code" ]
        }
      ],
      "formatted_address" : "Jabalpur, Madhya Pradesh 482001, India",
      "geometry" : {
        "bounds" : {
          "northeast" : {
            "lat" : 23.246354,
            "lng" : 80.08003219999999
          },
          "southwest" : {
            "lat" : 23.1050362,
            "lng" : 79.85747339999999
          }
        },
        "location" : {
          "lat" : 23.181467,
          "lng" : 79.98640709999999
        },
        "location_type" : "APPROXIMATE",
        "viewport" : {
          "northeast" : {
            "lat" : 23.246354,
            "lng" : 80.08003219999999
          },
          "southwest" : {
            "lat" : 23.1050362,
            "lng" : 79.85747339999999
          }
        }
      },
      "place_id" : "ChIJfam2DxqugTkRueNDvBYGAkQ",
      "types" : [ "locality", "political" ]
    }
  ],
  "status" : "OK"
}
我的代码是:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Geocode</title>
</head>
<body>
Enter Address<input type="text" id="UserInput">
Go<input type="button" onclick="geoCode()">

<script>

    function geoCode(){

        var UserInput =  document.getElementById('UserInput').valueOf();
        var xmlhttp = new XMLHttpRequest();
        var ApiKey = 'AIzaSyDZP2E_5LLE6VOwIbrNImS32sAx5rsgEbU';
        var myArr;

        var url = 'https://maps.googleapis.com/maps/api/geocode/json?address='+UserInput.value+'&key='+ApiKey;

        var xhr = new XMLHttpRequest();
        xhr.open('GET',url,true);
        xhr.send();

        xhr.onreadystatechange = processRequest;

        function processRequest() {
            if(xhr.readyState==4 && xhr.status==200)
            {
                var response = JSON.parse(xhr.responseText);
                alert(response["results"][0][0]);
            }
        }
    }

地理编码
输入地址
去
函数geoCode(){
var UserInput=document.getElementById('UserInput').valueOf();
var xmlhttp=new XMLHttpRequest();
var ApiKey='AIzaSyDZP2Eu 5lle6Vowibrimbinims32 Sax5rsgebu';
var myArr;
var url='1〕https://maps.googleapis.com/maps/api/geocode/json?address='+UserInput.value+'&key='+ApiKey;
var xhr=new XMLHttpRequest();
xhr.open('GET',url,true);
xhr.send();
xhr.onreadystatechange=processRequest;
函数processRequest(){
如果(xhr.readyState==4&&xhr.status==200)
{
var response=JSON.parse(xhr.responseText);
警报(响应[“结果”][0][0]);
}
}
}
我尝试了
JSON.stringify()
,但它吐出了响应中的所有数据。如何从JSON中选择一个特定元素?请提供帮助


<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Geocode</title>
</head>
<body>
Enter Address<input type="text" id="UserInput">
Go<input type="button" onclick="geoCode()">

<script>

    function geoCode(){

        var UserInput =  document.getElementById('UserInput').valueOf();
        var xmlhttp = new XMLHttpRequest();
        var ApiKey = 'AIzaSyDZP2E_5LLE6VOwIbrNImS32sAx5rsgEbU';
        var myArr;

        var url = 'https://maps.googleapis.com/maps/api/geocode/json?address='+UserInput.value+'&key='+ApiKey;

        var xhr = new XMLHttpRequest();
        xhr.open('GET',url,true);
        xhr.send();

        xhr.onreadystatechange = processRequest;

        function processRequest() {
            if(xhr.readyState==4 && xhr.status==200)
            {
                var response = JSON.parse(xhr.responseText);
              alert(response.results[0].geometry.location.lat + " " + response.results[0].geometry.location.lng);
            }
        }
    }
地理编码 输入地址 去 函数geoCode(){ var UserInput=document.getElementById('UserInput').valueOf(); var xmlhttp=new XMLHttpRequest(); var ApiKey='AIzaSyDZP2Eu 5lle6Vowibrimbinims32 Sax5rsgebu'; var myArr; var url='1〕https://maps.googleapis.com/maps/api/geocode/json?address='+UserInput.value+'&key='+ApiKey; var xhr=new XMLHttpRequest(); xhr.open('GET',url,true); xhr.send(); xhr.onreadystatechange=processRequest; 函数processRequest(){ 如果(xhr.readyState==4&&xhr.status==200) { var response=JSON.parse(xhr.responseText); 警报(response.results[0].geometry.location.lat+“”+response.results[0].geometry.location.lng); } } }
响应[“结果”][0]
不是数组,因此
响应[“结果”][0][0]
未定义的
。您想要什么?您不应该解析(JSON.parse)接收到的响应,因为此函数用于将JSON的字符串表示形式转换为JSON对象,您的案例已经是这种形式。您需要的是通过其路径访问元素,类似于
结果[0]。格式化的\u地址将返回
“Jabalpur,Madhya Pradesh 482001,India”