2
我爲Windows Phone 8創建了一個具有GeoCoordinate和短內部值的元組列表的silverlight項目。 爲了這樣做我創建了一個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'的代碼塊。把它放在你提出的問題中引用的整個四行中。在「catch」中放置一個斷點,並查看異常的「Message」屬性是什麼。這是錯誤信息。它會幫助你瞭解什麼是錯的。 –