Windows Phone 8用のSilverlightプロジェクトに、GeoCoordinateと短い値のタプルリストを作成しました。 そうするために、私はTupleListクラスを作成しました:Jsonはタプルでデシリアライズする問題
public class TupleList<T1, T2> : List<Tuple<T1, T2>>
{
public void Add(T1 item, T2 item2)
{
Add(new Tuple<T1, T2>(item, item2));
}
}
をので、私はこのように私のタプルを作成することができています:
new Tuple<GeoCoordinate, short> TupleName;
次のステップでは、私はTXT/JSONファイル内で書きたいです
string Json = JsonConvert.SerializeObject(TupleName);
...
System.Text.Encoding.UTF8.GetBytes(Json.ToCharArray());
が、今私の問題は、再びこのファイルをロードし、再びそれをデシリアライズすることであり、私は解決策を探しています:これは罰金も動作します
string TestString = streamReader.ReadLine();
Tuple<GeoCoordinate, short> TestTuple;
TestTuple = JsonConvert.DeserializeObject<Tuple<GeoCoordinate, short>>(TestString);
ListBox_WayPoints.Items.Add(TestTuple);
ReadLine()
までは期待と同じように働いていると私は"Item1: 'GeoCoordinate stuff', Item2: 'short value'"
のような文字列を取得しかしJsonConvert.DeserializeObject<Tuple<GeoCoordinate, short>>
メソッドは常にクラッシュされ、デバッガがちょうどデバッガのブレークポイントと全体のエラーにジャンプされているので、なぜ私は知りませんメッセージは次のとおりです。
Ausnahme ausgelöst: "Newtonsoft.Json.JsonSerializationException" in Newtonsoft.Json.DLL
Ausnahme ausgelöst: "Newtonsoft.Json.JsonSerializationException" in mscorlib.ni.dll
だから私は正しく文字列をデシリアライズすることが可能であるか(残念ながら私はまだ成功していない)、この問題での例/ヘルプは、今探しています。
を置きます'JsonConvert.DeserializeObject'を呼び出すコードのブロックをtry/catchしてください。あなたの質問で引用したブロックの4行全体に置きます。 'catch'にブレークポイントを置き、例外の' Message'プロパティが何であるかを見てください。それがエラーメッセージです。何が間違っているのかを理解するのに役立ちます。 –