我应该为C 中的每种类型都有一个解析器

Should I have a Parser for each Type in C++?

本文关键字:有一个 类型 种类 我应该      更新时间:2023-10-16

我目前正在为游戏构建一个简单的"级别"系统,其中游戏对象由组件组成,并且该组件中的数据存储在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标头库,该图书馆迄今已被证明是无价的。

似乎Unity通过反射来做到这一点,而反射目前不是C 的一部分。我找到了这个图书馆,这要归功于toπάνταῥεῖ!

的指导。