我正在为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));
});
}
答案 0 :(得分:0)
为什么不使用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中包含的方法之一进行此类交互。
另请注意,您可能希望将结果对象存储在某处,以便可以在搜索结果页面上访问它,或者在那里进行下载/反序列化。
答案 1 :(得分:0)
您应该能够使用JsonConvert.SerializeObject,详情如下: -
http://james.newtonking.com/projects/json/help/SerializingJSON.html