Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/258.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# Json与元组的反序列化问题_C#_Json_Silverlight_Windows Phone 8_Deserialization - Fatal编程技术网

C# Json与元组的反序列化问题

C# Json与元组的反序列化问题,c#,json,silverlight,windows-phone-8,deserialization,C#,Json,Silverlight,Windows Phone 8,Deserialization,我为WindowsPhone8创建了一个silverlight项目,它是一个元组列表,其中包含一个地理坐标和一个短值。 为此,我创建了一个TupleList类: public class TupleList<T1, T2> : List<Tuple<T1, T2>> { public void Add(T1 item, T2 item2) { Add(new Tuple<T1, T2>(item, item2));

我为WindowsPhone8创建了一个silverlight项目,它是一个元组列表,其中包含一个地理坐标和一个短值。 为此,我创建了一个TupleList类:

public class TupleList<T1, T2> : List<Tuple<T1, T2>>
{
    public void Add(T1 item, T2 item2)
    {
        Add(new Tuple<T1, T2>(item, item2));
    }
}
但现在我的问题是再次加载此文件并再次反序列化,我正在搜索解决方案:

string TestString = streamReader.ReadLine();
Tuple<GeoCoordinate, short> TestTuple;
TestTuple = JsonConvert.DeserializeObject<Tuple<GeoCoordinate, short>>(TestString);
ListBox_WayPoints.Items.Add(TestTuple);

因此,我现在正在搜索有关此问题的示例/帮助(不幸的是,我还没有成功)如何正确地反序列化字符串。

确定2小时后,我找到了答案:D

整个问题是,我期望一个元组,但我得到的是一个已经是元组的列表,所以整个魔法是:

string TestString = streamReader.ReadLine();
NewRoute = JsonConvert.DeserializeObject<TupleList<GeoCoordinate, short>>(TestString);
string TestString=streamReader.ReadLine();
NewRoute=JsonConvert.DeserializeObject(TestString);

在调用
JsonConvert.DeserializeObject的代码块周围放置一个try/catch。把它放在你在问题中引用的那一块的四行上。在
catch
中放置一个断点,然后查看异常的
消息
属性是什么。这就是错误信息。这将帮助你了解问题所在。
string TestString = streamReader.ReadLine();
Tuple<GeoCoordinate, short> TestTuple;
TestTuple = JsonConvert.DeserializeObject<Tuple<GeoCoordinate, short>>(TestString);
ListBox_WayPoints.Items.Add(TestTuple);
Ausnahme ausgelöst: "Newtonsoft.Json.JsonSerializationException" in Newtonsoft.Json.DLL
Ausnahme ausgelöst: "Newtonsoft.Json.JsonSerializationException" in mscorlib.ni.dll
string TestString = streamReader.ReadLine();
NewRoute = JsonConvert.DeserializeObject<TupleList<GeoCoordinate, short>>(TestString);