从JSON GET请求中获取字符串

本文关键字:获取 字符串 请求 JSON GET | 更新日期: 2023-09-27 18:30:01

我正在为Windows Phone 7开发一个应用程序。我正在向JSON服务发出GET请求。请求的返回类型是一个对象。

我的问题是,如何根据对象中的信息创建字符串。下面的代码是我用来发出请求和处理响应的代码。

        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));
            });
    }

从JSON GET请求中获取字符串

为什么不使用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中包含的方法之一进行这种交互。

还要注意,你可能想把你的结果对象藏在某个地方,这样它就可以在你的搜索结果页面上访问,或者在那里下载/取消序列化。

您应该能够使用JsonConvert.SerializeObject,详细信息如下:-

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