Experience Serialization - chaolunner/CloudNotes GitHub Wiki

FlatBuffers

  • Writing a schema

    namespace MyGame;
    
    enum PhoneType : int {
      MOBILE = 0,
      HOME = 1,
      WORK = 2,
    }
    
    table PhoneNumber {
      number:string (required);
      type:int;
    }
    
    table People {
      name:string;
      age:int;
      phone:[PhoneNumber];
    }
    
    table AddressBook {
      people:[People];
    }
    root_type AddressBook;
    
  • Generate Code

    执行命令行: flatc.exe --csharp -o Resource/Sample Sample.fbs 则可以生成目标语言的代码。

    –csharp 指定了编译的目标语言。-o 则用于指定输出文件路径,如果没有提供则将当前目录作为输出目录。最后,则是.fbs文件路径。

  • 二进制文件生成Json文件

    执行命令行: flatc.exe --raw-binary -t Sample.fbs -- AddressBook.ab 则可以生成一个名叫AddressBook.json的文件,方便查看生成的二进制文件是否正确。

    注意:AddressBook.ab前面有一个空格。