我有一个float vector List<Vector3> club3Dpts = new List<Vector3>();
的列表,喜欢序列化到Json对象以存储在MySql中。
club3Dpts有漂浮矢量。
club3Dpts.Add (new Vector3 (1.25f, 1.335f, 1.425f));//chipping
club3Dpts.Add (new Vector3 (1.26f, 1.331f, 1.625f));//chipping
club3Dpts.Add (new Vector3 (1.232f, 1.135f, 1.125f));//chipping
我喜欢序列化为json,它实现为
//Serialize to Json
string json = JsonUtility.ToJson(club3Dpts);
Debug.Log("json " + json);
但是json没有数据,只在Debug中显示{}。
如何在Unity中序列化浮点矢量列表?
编辑: 我做了类似帖子中描述的相同的事情。
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;
}
}
然后序列化为Json
string json = JsonHelper.ToJson(club3Dpts.ToArray());
Debug.Log("json " + json);
json保存在MySql数据库中。
从MySql中检索json数据,
SqliteDatabase sqlDB = new SqliteDatabase (dbPath);
var result = sqlDB.ExecuteQuery("SELECT * FROM Record WHERE ID = (SELECT MAX(ID) FROM Record)");
var row = result.Rows [0];
BLEBridge.club3Dpts = JsonHelper.FromJson(row ["Club3DPoints"].ToString());
BLEBridge.club3Dpts is List<Vector3> type.
我的错误为The type arguments for method JsonHelper.FromJson<T>(string) cannot be inferred from the usage. Try specifying the type arguments explicitly.
可能出现什么问题?