СonvertJSON数组到List <t>错误</t>

时间:2014-02-19 22:19:22

标签: c# json

我正在尝试编写此转换器以适用于所有类型。所以我正在使用泛型。但是收到以下编译时错误。

  

无法将数组转换为列表
  [System.InvalidCastException:无法从源类型转换为目标类型。

我不确定为什么它说我正在将一个数组转换为一个列表,它应该在列表中添加一个元素。或者我如何施展它。

public static List<T> ConvertToList<T> (JsonData dataArray)
{
    List<T> dataList = new List<T> ();

    if(dataArray.IsArray)
    {
        for(int i=0; i < dataArray.Count; i++)
        {
            dataList.Add ((T)(object)dataArray[i]);
        }
    }

    return dataList;
}

2 个答案:

答案 0 :(得分:1)

JsonData中的对象不属于您传入的类型T.

答案 1 :(得分:1)

我不确定你为什么要施展到object然后施放到T。如果dataArray [i]可以转换为T,那么您不需要通过object来实现目标。话虽如此,我也会使用as代替直接演员。这是因为您似乎并不总是知道dataArray[i]可以投放到T

var item = dataArray[i] as T;
if (item != null)
{
    dataList.Add(item);
}