0

数日前に正常に機能していたcsomeコードに少し問題があります。Yahoos APIを使用して、郵便番号の緯度と緯度を取得しています。コードは次のとおりです。

string url = string.Format("http://where.yahooapis.com/geocode?flags=J&appid=xxxx&location={0}", postcode);

        decimal latitude = 0;
        decimal longitude = 0;
        Dictionary<string, decimal> geoCode = new Dictionary<string, decimal>();

        dynamic yahooResults = new Uri(url).GetDynamicJsonObject();
        foreach (var result in yahooResults.ResultSet.Results)
        {
            latitude = (decimal)result.latitude;
            longitude = (decimal)result.longitude;
        }

        geoCode.Add("latitude", latitude);
        geoCode.Add("longitude", longitude); 

        return geoCode;

コードは数日前に正常に機能していたと言いましたが、現在は緯度と緯度が常に0として返されます。以下にYahooからの応答を含めました。

{
  "@lang": "en-US",
  "ResultSet": {
    "@version": "2.0",
    "@lang": "en-US",
    "Error": "0",
    "ErrorMessage": "No error",
    "Locale": "en-US",
    "Found": "1",
    "Quality": "60",
    "Result": {
      "quality": "60",
      "latitude": "51.62071",
      "longitude": "-0.23616",
      "offsetlat": "51.620708",
      "offsetlon": "-0.23616",
      "radius": "4200",
      "name": "",
      "line1": "",
      "line2": "London",
      "line3": "NW7",
      "line4": "United Kingdom",
      "house": "",
      "street": "",
      "xstreet": "",
      "unittype": "",
      "unit": "",
      "postal": "NW7",
      "neighborhood": "",
      "city": "London",
      "county": "Greater London",
      "state": "England",
      "country": "United Kingdom",
      "countrycode": "GB",
      "statecode": "ENG",
      "countycode": "LND",
      "uzip": "NW7",
      "hash": "",
      "woeid": "26787971",
      "woetype": "11"
    }
  }
}

フォーマットして申し訳ありませんが、スタックはそれをうまくフォーマットしたくないようです!明らかにlogitiudeと緯度が返されます。これは単純なことだと思いますが、愛やお金で見ることはできません。助けていただければ幸いです。

4

1 に答える 1

2

yahooはResultもう配列を返さないようです。以下のコードは機能します

dynamic yahooResults =.....;

var latitude = (decimal)yahooResults.ResultSet.Result.latitude;
var longitude = (decimal)yahooResults.ResultSet.Result.longitude;
于 2012-10-02T12:51:24.457 に答える