Я использую Bing Map REST API, потому что хочу узнать геолокацию из секретного местоположения. Url отлично работает, но из-за того, что я использую код JSON в первый раз, я действительно не знаю, как я получаю вывод, который я хочу.Анализ кода JSON из Bing Map API в C#
Я попытался следующие:
string URL = "http://dev.virtualearth.net/REST/v1/Locations?countryRegion=&adminDistrict=&locality=Wien&postalCode=&addressLine=&userLocation=&userIp=&usermapView=&includeNeighborhood=&maxResults=&key=MY_KEY";
WebClient client = new WebClient();
client.OpenReadAsync(new Uri(URL, UriKind.Absolute));
client.OpenReadCompleted += new OpenReadCompletedEventHandler(client_OpenReadCompleted);
private void client_OpenReadCompleted(object sender, OpenReadCompletedEventArgs e)
{
DataContractJsonSerializer serializer = new DataContractJsonSerializer(typeof(Point));
Point data = serializer.ReadObject(e.Result) as Point;
}
[DataContract]
public class Point
{
/// <summary>
/// Latitude,Longitude
/// </summary>
[DataMember(Name = "coordinates")]
public double[] Coordinates { get; set; }
}
Когда я печатаю на ссылку в браузере, это мой ответ:
{ "authenticationResultCode": "ValidCredentials", "brandLogoUri":» http://dev.virtualearth.net/Branding/logo_powered_by.png","copyright":"Копия авторских прав © 2013 Microsoft и ее поставщики. Все права защищены. Этот API недоступен, и контент и любые результаты могут не использоваться , воспроизводится или передается любым способом без письменного разрешения корпорации Microsoft. "," resourceSets ": [{" estimatedTotal ": 1," ресурсы ": [{" __type ":" Расположение: Http: //schemas.microsoft.com/search/local/ws/rest/v1" , "BBOX": [+47,253395080566406, -123.16571807861328,47.946159362792969 , -121.50344085693359], «name»: «Seattle, WA», «point»: {«type»: «Point», «maps»: [47.603561401367188, -122.32943725585938]}, «address»: {"adminDistrict": " WA »,« adminDistrict2 »:« King Co. »,« CountryRegion »:« Соединенные Штаты »,« formattedAddress »:« Сиэтл, WA »,« местность »:« Сиэтл »},« уверенность »:« Высокий », EntityType ":" PopulatedPlace», "geocodePoints": [{ "тип": "Точка", "координата": [47.603561401367188, -122.32943725585938], "calculationMethod": "Крыша", "usageTypes": [ "Display"]} ], "matchCodes": [ "Хорошо"]}]}], "StatusCode": 200, "statusDescription": "OK", "traceId": "08bee37ecb714d7cb7e2783eb8f873a4 | LTSM000177 | 02.00.183.2300 | LTSIPEVM000039"}
Мой вопрос сейчас: это правильный способ сделать это? И как мне получить данные?
Надеюсь, вы можете мне помочь, я уже потратил много времени на эту проблему.
----- EDIT -----
Теперь я использую Json.NET, но я не знаю, как анализировать данные, я получаю от веб-сайта в строковой переменной.
Я попробовал следующее:
var json = new WebClient().DownloadString("url");
, но это не работает, потому что я занимаюсь разработкой на Windows Phone.
System.Net.WebClient не содержит определение для "DownloadString" ...
Любой человек может помочь мне получить эту работу для Windows Phone Apps.
спасибо, это кажется очень приятным, я буду тестировать его завтра – Crusader633
var root = JsonConvert.DeserializeObject (json); могу ли я дать ссылку в качестве параметра? –
Crusader633