Unity Json无法序列化通用列表

问题描述 投票:-1回答:1

我正在尝试编写一个接受对象的方法,该方法将使用Unity JsonUtility或JsonHelper并返回该对象的序列化版本。当我运行以下调试代码时,一切正常。

    object t = new List<Player>
    {
        new Player
        {
            Name = "asdf",
            ID = Guid.NewGuid().ToString()
        }
    };

    if (t is IEnumerable<Player> list)
        Debug.Log(JsonHelper.ToJson(list.ToArray()));

//Result {"Items":[{"ID":"eff6ca08-b464-4e57-9f2e-f49a0cb869ff","Name":"asdf"}]} 

但是,我的实际方法没有返回相同的东西。

 public void SeriailizeObject<T>(T obj)
 {
    if (obj is IEnumerable<T> list)
    {
        Debug.Log(JsonHelper.ToJson(list.ToArray()));
        //Result {}
    }
    ...

有人知道您是否可以使用Unity的JsonUtility序列化通用列表?

c# json unity3d serialization
1个回答
0
投票

[调用SeriailizeObject(new List<Player>())时,typeof(T)等于List<Player>,并且obj等于不是IEnumerable<List<Player>>

[调用SeriailizeObject(t)时,typeof(T)等于object,并且objIEnumerable<object>(假定tList<Player>)。

© www.soinside.com 2019 - 2024. All rights reserved.