Javascript JSON解析Bing映射响应

Javascript JSON解析Bing映射响应,javascript,json,Javascript,Json,我试图用Bing地图解析出一个反向地理位置 查找信息>反向查找 如果你查看代码,当你查找地址时,你会得到这个 function _f1300044038369() { return { "d": { "__type": "Microsoft.VirtualEarth.Engines.Core.Geocoding.ReverseGeocodeResponse", "Results": [{ "

我试图用Bing地图解析出一个反向地理位置

查找信息>反向查找

如果你查看代码,当你查找地址时,你会得到这个

function _f1300044038369() {
    return {
        "d": {
            "__type": "Microsoft.VirtualEarth.Engines.Core.Geocoding.ReverseGeocodeResponse",
            "Results": [{
                "Name": "SW 35th Ave, Tualatin, OR 97062",
                "Type": 0,
                "BestLocation": {
                    "Precision": 0,
                    "Coordinates": {
                        "Latitude": 45.378872752189636,
                        "Longitude": -122.71288096904755
                    }
                },
                "Locations": [{
                    "Precision": 0,
                    "Coordinates": {
                        "Latitude": 45.378872752189636,
                        "Longitude": -122.71288096904755
                    }
                }],
                "BestView": {
                    "NorthEastCorner": {
                        "Latitude": 45.382735469760313,
                        "Longitude": -122.70554921472814
                    },
                    "SouthWestCorner": {
                        "Latitude": 45.37501003461896,
                        "Longitude": -122.72021272336696
                    },
                    "Type": 0,
                    "Center": {
                        "Latitude": 45.378872884129805,
                        "Longitude": -122.71288096904755
                    }
                },
                "Shape": null,
                "Address": {
                    "AddressLine": "SW 35th Ave",
                    "Locality": "Tualatin",
                    "PostalTown": "",
                    "District": "",
                    "AdminDistrict": "OR",
                    "PostalCode": "97062",
                    "CountryRegion": "United States",
                    "FormattedAddress": "SW 35th Ave, Tualatin, OR 97062"
                },
                "CountryRegion": 244,
                "MatchConfidence": 1,
                "MatchCode": 1
            }],
            "ResponseSummary": {
                "Copyright": "Copyright © 2011 Microsoft and its suppliers. All rights reserved. This API cannot be accessed and the content and any results may not be used, reproduced or transmitted in any manner without express written permission from Microsoft Corporation.",
                "StatusCode": 0,
                "AuthResultCode": 0,
                "ErrorMessage": null,
                "TraceId": "dc1c3b20-6345-484c-9662-4df504d8977e|SN1M001054"
            }
        }
    }.d;
}
if (typeof closeDependency !== 'undefined') {
    closeDependency('1300044038369');
}
我当前使用的代码将“名称”解析到它的各个部分,以便我可以在其他地方使用它

function GetResults(locations) {
    if (locations) {
        for (var i = 0; i < locations.length; i++) {
            s = locations[i].Name;
            //
            var addressSplit = s.split(", ");
            addresscode = addressSplit[0]
            citycode = addressSplit[1]
            statezip = addressSplit[2]
            country = addressSplit[3]
            var statezipSplit = statezip.split(" ");
            statecode = statezipSplit[0];
            zipcode = statezipSplit[1];
            var loc_array = new Array();
            loc_array[0] = addresscode;
            loc_array[1] = citycode;
            loc_array[2] = statecode;
            loc_array[3] = zipcode;
            window.locationArray = loc_array;
        }
    }
函数GetResults(位置){
如果(地点){
对于(变量i=0;i
我想更改上述代码,以使用已包含addressline、location、postaltown等的部分。

函数GetResults(locations){
function GetResults(locations) {
    var locations = locations.Results;
    if (locations) {
        for (var i = 0; i < locations.length; i++) {
            var addr = locations[i].Address,
                loc_array = new Array()
                addresscode, citycode, country, statecode, zipcode;
            //
            addresscode = addr.AddressLine;
            citycode = addr.Locality;
            country = addr.CountryRegion;
            statecode =addr.AdminDistrict;
            zipcode = addr.PostalCode;
            loc_array[0] = addresscode;
            loc_array[1] = citycode;
            loc_array[2] = statecode;
            loc_array[3] = zipcode;
            window.locationArray = loc_array;
        }
    }
var位置=位置。结果; 如果(地点){ 对于(变量i=0;i
这可以满足您的要求。但这不是很好的做法。首先,如果您有多个位置,每个位置都会覆盖另一个位置。其次,这会污染不推荐的窗口命名空间。

函数GetResults(位置){
var位置=位置。结果;
如果(地点){
对于(变量i=0;i

这可以满足您的要求。但这不是很好的做法。首先,如果您有多个位置,每个位置都会覆盖另一个位置。其次,这会污染不推荐的窗口命名空间。

看起来您已经将“Results”对象作为“locations”传递到函数中了参数,因此我将在该假设下工作。您可以引用位置[I].Name,而不是引用位置[I].Address。这将为您提供一个应该具有所需所有属性的对象

function GetResults(locations) {
  if (locations) {
    for (var i = 0; i < locations.length; i++) {
      var s = locations[i].Address;
      //
      var address = s.AddressLine;
      var city = s.Locality;
      var state = s.AdminDistrict;
      var zip = s.PostalCode;
      var country = s.CountryRegion

      // and so on...
    }
  }
函数GetResults(位置){
如果(地点){
对于(变量i=0;i

}

看起来您已经将“Results”对象作为“locations”参数传递到函数中,因此我将在该假设下工作。您可以引用locations[I].Name,而不是引用locations[I].Address。这将为您提供一个应该具有所需所有属性的对象

function GetResults(locations) {
  if (locations) {
    for (var i = 0; i < locations.length; i++) {
      var s = locations[i].Address;
      //
      var address = s.AddressLine;
      var city = s.Locality;
      var state = s.AdminDistrict;
      var zip = s.PostalCode;
      var country = s.CountryRegion

      // and so on...
    }
  }
函数GetResults(位置){
如果(地点){
对于(变量i=0;i

}

您需要做的唯一一件事就是更改loc\U阵列线:

function GetResults(locations) {
    var s, location;
    if (locations) {
        for (var i = 0; i < locations.length; i++) {
            s = locations[i].Name;
            location = locations[i];
            //
            var loc_array = [];
            loc_array[0] = location.Address.AddressLine;
            loc_array[1] = location.Address.Locality;
            loc_array[2] = location.Address.AdminDistrict;
            loc_array[3] = location.Locations.Coordinates.Latitude;
            loc_array[4] = location.Locations.Coordinates.Longitude;
            // ...
            window.locationArray = loc_array;
        }
    }
}
函数GetResults(位置){
var s,位置;
如果(地点){
对于(变量i=0;i
您需要做的唯一一件事就是更改loc\U阵列线:

function GetResults(locations) {
    var s, location;
    if (locations) {
        for (var i = 0; i < locations.length; i++) {
            s = locations[i].Name;
            location = locations[i];
            //
            var loc_array = [];
            loc_array[0] = location.Address.AddressLine;
            loc_array[1] = location.Address.Locality;
            loc_array[2] = location.Address.AdminDistrict;
            loc_array[3] = location.Locations.Coordinates.Latitude;
            loc_array[4] = location.Locations.Coordinates.Longitude;
            // ...
            window.locationArray = loc_array;
        }
    }
}
函数GetResults(位置){
var s,位置;
如果(地点){
对于(变量i=0;i
您是否像
GetResults(\u f1300404038369())
那样调用它?如果是这样,您必须