我有这门课。
public static class JsonHelper
{
public static T[] FromJson<T>(string json)
{
Wrapper<T> wrapper = JsonUtility.FromJson<Wrapper<T>>(json);
return wrapper.Items;
}
public static string ToJson<T>(T[] array)
{
Wrapper<T> wrapper = new Wrapper<T>();
wrapper.Items = array;
return JsonUtility.ToJson(wrapper);
}
public static string ToJson<T>(T[] array, bool prettyPrint)
{
Wrapper<T> wrapper = new Wrapper<T>();
wrapper.Items = array;
return JsonUtility.ToJson(wrapper, prettyPrint);
}
[Serializable]
private class Wrapper<T>
{
public T[] Items;
}
}
我从调用中调用了其中一个方法
SqliteDatabase sqlDB = new SqliteDatabase (dbPath);
var result = sqlDB.ExecuteQuery ("SELECT * FROM CurrentClub WHERE id = 2");
var row = result.Rows [0];
List<Vector3> BLEBridge.club3Dpts = JsonHelper.FromJson(row ["Club3DPoints"].ToString ());
我有错误
error CS0411: The type arguments for method `JsonHelper.FromJson<T>(string)' cannot be inferred from the usage. Try specifying the type arguments explicitly
即使我改为
List<Vector3> BLEBridge.club3Dpts = JsonHelper.FromJson("");
我有同样的错误。
可能出现什么问题?
答案 0 :(得分:2)
您需要指定类似T
的类型,以及它所抱怨的内容
Vector3[] BLEBridge.club3Dpts = JsonHelper.FromJson<Vector3>(row ["Club3DPoints"].ToString ());
查看您的方法签名T[] FromJson<T>(string json)
,因为您要映射到List<Vector3>
,您应指定类型Vector3