You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Unity中JsonUtility嵌套类反序列化失败问题求助

Unity JsonUtility反序列化嵌套类为null的解决方法

问题场景

你提供的JSON数据:

{
   "userName" : "player3322",
   "userLevel" : 23,
   "userInventory" : {
       "primaryHand" : "3493",
       "secondaryHand" : "none"
   }
}

对应的C#类定义:

public class PlayerData{
    public string userName;
    public int userLevel;
    public UserInventoryData userInventory;
}

public class UserInventoryData {
    public string primaryHand,secondaryHand;
}

使用JsonUtility.FromJson反序列化后,PlayerData.userInventory始终为null,无法访问其内部内容。

解决方法

Unity的JsonUtility仅能序列化/反序列化标记了**[Serializable]特性**的自定义类,你的嵌套类UserInventoryData和主类PlayerData都缺少这个标记,导致JsonUtility无法识别嵌套对象的结构,最终反序列化时赋值为null。

修改后的类定义如下:

using System;

[Serializable]
public class PlayerData{
    public string userName;
    public int userLevel;
    public UserInventoryData userInventory;
}

[Serializable]
public class UserInventoryData {
    public string primaryHand, secondaryHand;
}

修改后重新执行反序列化操作,userInventory就能正常被解析并赋值。

补充说明:如果字段使用private访问权限,还需额外添加[SerializeField]特性让JsonUtility能访问字段;你当前使用public字段,无需额外处理。

内容的提问来源于stack exchange,提问作者Tidominer

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.14 02:30:59