Unity3D的JsonUtility使用

258 字
1 分钟
Unity3D的JsonUtility使用

记录一下使用 JsonUtility 遇到的坑.

1. 类或字段必须是可序列化的#

  1. class 必须是 public 或者带[Serializable]的 Attribute.
  2. field 必须是 public 或带[SerializeField]的 Attribute.

[SerializeField]属性, 有 UnityEngine 提供, 表示序列化时需要强制序列化这个字段.

[Serializable]
internal class CfgBuild
{
public int Id;
public string Name;
[SerializeField]
private int Age;
}

2. 不支持解析 Json 的 Array#

[
{ "ID": 1, "Name": "n1" },
{ "ID": 2, "Name": "n2" }
]

上面的 JSON 会直接反序列化失败. 但是支持 JSON 中包含 Array, 如下所示:

{
"list": [
{ "ID": 1, "Name": "n1" },
{ "ID": 2, "Name": "n2" }
]
}

目前笔者搜索的解决方案也是在外部封装一层.

3. 不支持 get 和 set#

// get和set不支持
// public int ret { get; set; }
不会报错,不影响代码执行。但是会导致反序列化后的bean没有赋值.

4. 其他#

笔者使用还比较少, 没有详细去处理异常的状态. 扩展信息可以从参考资料中查看

5. 参考资料#

  1. SerializeField 和 Serializable.

支持与分享

如果这篇文章对你有帮助,欢迎分享给更多人或赞助支持!

赞助
Unity3D的JsonUtility使用
https://tinyzzh.github.io/posts/2017-09-03-unity3d_jsonutility_1/
作者
TinyZ Zzh
发布于
2017-09-03
许可协议
CC BY-NC-SA 4.0

评论区

Profile Image of the Author
TinyZ Zzh
专注于高并发服务器、网络游戏相关(Java、PHP、Unity3D、Unreal Engine等)技术,热爱游戏事业, 正在努力实现自我价值当中。
公告
欢迎来到我的博客!这是一则示例公告。
音乐
封面

音乐

暂未播放

0:00 0:00
暂无歌词
分类
标签
站点统计
文章
211
分类
38
标签
200
总字数
337,853
运行时长
0
最后活动
0 天前

文章目录