Рассмотрим JSON:Как получить данные из JSON в WP7
resourceSets: [
{
estimatedTotal: 5,
resources: [
{
__type: "Location:http://schemas.microsoft.com/search/local/ws/rest/v1",
bbox: [
51.3014406,
-8.3233626,
51.3037489,
-8.3182203
],
name: "Some Address",
point: {
type: "Point",
coordinates: [
51.3033847,
-2.3204335
]
},
address: {
addressLine: "SomeAddress",
adminDistrict: "MI",
adminDistrict2: "South Country",
countryRegion: "England",
formattedAddress: "Some Formattedaddress",
locality: "Derby",
postalCode: "12345"
},
и т.д ..
Тесно после этого: http://blog.clauskonrad.net/2010/11/wp7-how-to-consume-json-data-from.html
Мой класс:
[DataContract]
public class ReturnedDetails
{
[DataMember(Name="formattedAddress")]
public string formattedAddress { get; set; }
}
И код события:
void wc_DownloadStringCompleted(object sender, DownloadStringCompletedEventArgs e)
{
using (var ms = new system.IO.MemoryStream(Encoding.Unicode.GetBytes(e.Result)))
{
var ser = new DataContractJsonSerializer(typeof(ReturnedDetails[]));
ReturnedDetails[] obj = (ReturnedDetails[])ser.ReadObject(ms);
}
}
Когда я запускаю это, InvalidCastException
выбрасывается в ReturnedDetails[] obj = (ReturnedDetails[])ser.ReadObject(ms);
Когда я отладки и парить над ser
, KnownDataContracts
«не могли бы оценить выражение» и «нулевой».
Я просто хочу получить значение из форматированногоAddress в JSON, кто-нибудь знает как?
Спасибо за любую помощь.
Стек трассировки:
на PhoneApp1.MainPage.wc_DownloadStringCompleted (отправитель объекта, DownloadStringCompletedEventArgs е) при System.Net.WebClient.OnDownloadStringCompleted (DownloadStringCompletedEventArgs е) при System.Net.WebClient. DownloadStringOperationCompleted (Объект Arg) в System.Reflection.RuntimeMethodInfo.InternalInvoke (RuntimeMethodInfo RtMI, OBJ Object, BindingFlags invokeAttr, Связующее связующего, объект параметры, CultureInfo культуры, логическое isBinderDefault, Асем Блай вызывающего абонента, булева VerifyAccess, StackCrawlMark & stackMark) при System.Reflection.RuntimeMethodInfo.InternalInvoke (объект Объект, BindingFlags invokeAttr, Связующее Связующее, Object [], параметры CultureInfo культуры, StackCrawlMark & stackMark) при System.Reflection. MethodBase.Invoke (объект OBJ, Object []) параметры
в System.Delegate.DynamicInvokeOne (Object [] арг) при System.MulticastDelegate.DynamicInvokeImpl (Object [] арг) при System.Delegate.DynamicInvoke (Object [] args) в System.Windows.Threading.DispatcherOperation.Invoke() в System.Windows.Threading.Dispatcher.Dispatch (DispatcherPrio rity приоритет) в System.Windows.Threading.Dispatcher.OnInvoke (Объект контекста) при System.Windows.Hosting.CallbackCookie.Invoke (Object [] арг) при System.Windows.Hosting.DelegateWrapper.InternalInvoke (Object [ ] арг)
в System.Windows.RuntimeHost.ManagedHost.InvokeDelegate (IntPtr pHandle, Int32 nParamCount, ScriptParam [] pParams, ScriptParam & pResult)