c++ - 我应该为 C++ 中的每种类型都有一个解析器吗?
问题描述
我目前正在为我的游戏构建一个简单的“关卡”系统,其中游戏对象由组件组成,并且该组件中的数据存储在 JSON 中。假设我有以下结构:
struct SpriteComponent
{
int textureID;
std::string resource;
};
struct TransformComponent
{
Vector3 position;
Vector3 rotation;
Vector3 scale;
};
其中 Vector3 是,
struct Vector3
{
float x;
float y;
float z;
};
我需要使用 JSON 定义我的游戏对象,以便我可以在运行时将它们加载到我的游戏中。我的问题是我是否必须为 C++ 中每个不同的用户定义类型编写解析代码?
我有使用 Unity3D 的经验,它带有一个漂亮的JSONUtility,它可以自动映射到正确的字段(如果我没记错的话,使用反射)。有没有在 C++ 中执行此操作的库?我遇到了这个解析器,如果我没记错的话,它几乎仅限于使用它们各自的键逐个访问每个元素。
解决方案
通常有人已经做了你需要做的事情:-)
对于 C++,我喜欢nlohmann 的 JSON 标头库,到目前为止它已被证明是无价的。
推荐阅读
- python - 模型没有预测正确的结果 keras tensorflow python
- assembly - 编程语言可以有自己的调用约定吗?
- locking - 如何实现多生产者多消费者单缓冲区模型?
- docker - 如何使用docker通过jenkins运行requirments.txt?
- python - 如何更新`info` graphql中的SelectionSet?
- dynamics-crm - 我应该如何在合作伙伴门户上使用配置实体?
- java - Spring Boot App - Tomcat 无法访问 SQLite 数据库文件
- c# - 如何在 Windows 命令提示符下向 C# 控制台应用程序(如 F7)添加弹出菜单?
- jenkins - 是否有一种加载 Jenkins 构建的常规方式?
- flutter - 在 Flutter 中删除 TextFormField 中的错误消息