Получение строки из запроса JSON GET - PullRequest
0 голосов
/ 03 апреля 2012

Я разрабатываю приложение для Windows Phone 7. Я делаю GET-запрос к службе JSON. Тип возврата запроса - объект.

У меня вопрос, как мне создать строку из информации в объекте. Код ниже - это то, что я использую для отправки запроса и обработки ответа.

        HttpWebRequest carRequest = (HttpWebRequest)WebRequest.Create(carUrl);
        carRequest.Method = "GET";
        carRequest.BeginGetResponse(new AsyncCallback(ProcessResponse), carRequest);

    private void ProcessResponse(IAsyncResult asyncResult)
    {
        HttpWebRequest request = (HttpWebRequest)asyncResult.AsyncState;
        WebResponse response = (HttpWebResponse)request.EndGetResponse(asyncResult);
        StreamReader sr = new StreamReader(response.GetResponseStream());
        Car.car = (Car)JsonConvert.DeserializeObject(sr.ReadToEnd(), typeof(Car));
        Deployment.Current.Dispatcher.BeginInvoke(() =>
            {
                NavigationService.Navigate(new Uri("/SearchResults.xaml", UriKind.Relative));
            });
    }

Ответы [ 2 ]

0 голосов
/ 03 апреля 2012

Вы должны иметь возможность использовать объект JsonConvert.SerializeObject, как описано ниже: -

http://james.newtonking.com/projects/json/help/SerializingJSON.html

0 голосов
/ 03 апреля 2012

Почему бы не использовать WebClient?

private void DownloadString()
{
    var wc = new WebClient();
    wc.DownloadStringCompleted += MyHandler;
    wc.DownloadStringAsync(carUrl);
}

void MyHandler(object sender, DownloadStringCompletedEventArgs e)
{
    var result = e.Result;
}

Обратите внимание, что это общее решение для загрузки строки.Если вы решаете JSON, используйте для этого типа взаимодействия один из методов, включенных в JSON.Net.

Также обратите внимание, что вы можете захотеть спрятать ваш объект результата где-нибудь, чтобы к нему можно было получить доступ в результатах поиска.страницы, или выполните загрузку / десериализацию там.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...