こんにちはなぜインサイドキャスト例外が発生しますか?キャスト例外が無効です、json、windows phone
public class RootContainer2
{
[DataMember]
public string StopName { get; set; }
[DataMember]
public string StopId { get; set; }
[DataMember]
public string Stop { get; set; }
[DataMember]
public ObservableCollection<Stops> Stops { get; set; }
}
private void ContentPanel_Loaded(object sender, RoutedEventArgs e)
{
textRouteId.Text = this.NavigationContext.QueryString["name"];
string myvar = textRouteId.Text;
try
{
WebClient webClient = new WebClient();
Uri uri = new Uri("websiteurl");
webClient.OpenReadCompleted += new OpenReadCompletedEventHandler(webClient_OpenReadCompleted);
webClient.OpenReadAsync(uri);
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
}
}
void webClient_OpenReadCompleted(object sender, OpenReadCompletedEventArgs e)
{
DataContractJsonSerializer ser = null;
try
{
ser = new DataContractJsonSerializer(typeof(RootContainer2));
RootContainer2 rootContainer = ser.ReadObject(e.Result) as RootContainer2;
foreach (Stops em in rootContainer.Stops)
{
string df = em.StopName;
string dt = em.StopId;
}
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
}
}
私が読もうとしているjson出力ですが、無効なキャスト例外が発生します。
{"RouteId": "1231", "RouteName":"1 Whitehawk - Mile Oak", "Stops": [ { "StopId":"6882", "StopName":"Swanborough Drive", "OperatorsCode4":"bridmpj", "Lat":"50.8326729229821", "Lng":"-0.103217996656901" } , { "StopId":"6883", "StopName":"Haybourne Road", "OperatorsCode4":"brimapm", "Lat":"50.8317788816436", "Lng":"-0.10486427645364671" } , { "StopId":"6884", "StopName":"Coolham Drive", "OperatorsCode4":"brijtwm", "Lat":"50.829695439856089", "Lng":"-0.10512229365031489" } , { "StopId":"6885", "StopName":"St Cuthmans Church", "OperatorsCode4":"briapdg", "Lat":"50.8283233642578", "Lng":"-0.104808002710342" } ,
プラスstops.cs内のクラス:
public class Stops
{
public string StopId { get; set; }
public string StopName { get; set; }
}
EDIT:
だから、私自身のURLを作成し、データをテストした後、それは私がしたURLとは何かです私は考える。もっとテストをするだけです。
編集2
私は、テキストファイルにデータを入れて、データをデバッグする場合、私は次のことを行うならば、それは動作します。 "私は削除、および場合}]}
"" それが動作 - "0.277833998203278"、":
"LNG":
供給の終了は、次のようです。どのように私は最初にそこに着くのをやめますか?
例外の詳細*は何ですか? –
私はそれをデバッグするとき、この行の最後に達したとき: RootContainer2 rootContainer = RootContainer2としてser.ReadObject(e.Result); これはまっすぐに終了し、エラーメッセージ「 "InvalidCastException"が表示されます –
例外の*メッセージ*だけが表示されているためです。スタックトレースなど、それ以上の情報を得ることができるはずです。 –