c++ - 从 C++ 序列化 Lua 表(通过 JSON)

标签 c++ regex json lua

我想将复杂的数据从 C++ 服务传递到 Lua 应用程序。这种通信是通过网络进行的。为了 Lua 应用程序的简单性和速度,我更愿意发送文本 Lua 表文本(不需要单独的解析器),而不是 XML 或 JSON 或 YAML 等。

虽然存在诸如编写 JSON 的 C++ 库之类的东西,但我找不到用于创建序列化 Lua 的现有 C++ 库。那么,我的想法是使用现有的 C++ JSON 库,然后将字符串转换为 Lua。

例如,我想转换这个字符串:

{
  "hello":42,
  "array":[1,2,{"more":false},null,true],
  "worst":"still [null]: got it?"
}

进入这个字符串:

{
  ["hello"]=42,
  ["array"]={1,2,{["more"]=false},nil,true},
  ["worst"]="still [null]: got it?"
}

简单的replace_all转换为:转换为=[]转换为{}nullnil 将破坏字符串内的内容。我如何执行此转换?

为了避免 XY problem 的问题我在顶部和标题中包含了我的最终动机,以防 JSON->Lua 字符串转换是错误的选择。

最佳答案

我会编码Lua -格式serializing我自己的图书馆。您可以选择free software Json C++ 库(例如 jsoncpplibjson )并很容易地调整其代码(适合您的 Lua 格式)。

当然你应该遵守该库的许可,我强烈建议你让你的Lua格式序列化库本身成为一个自由软件,例如上github和/或freecode和/或sourceforge ...

重点是JSON (希望您的 Lua 格式)足够简单,可以轻松解析或打印...将现有库调整为您的格式可能比“后处理”其输出更简单,而且肯定更快...

关于c++ - 从 C++ 序列化 Lua 表(通过 JSON),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20978023/

相关文章:

regex - 匹配逗号,不包括括号中的逗号 - RE2 for Google Sheets

c# - 使用任意数字键和对象数组值解析嵌套字典

c++ - 是否可以通过包含头文件来实现运行时依赖性?

c++ - 二值图像的特征提取

c++ - 我可以使用 Qt LGPL 许可证并在没有任何限制的情况下出售我的应用程序吗?

xml - 正则表达式oracle sql 11g解析XML

javascript - JS - 检查字符串是否只包含 0

java - JSONObject toString() 导致 1495472 字节分配内存不足

jquery - 我的 html 页面未显示我的 json 数据

c++ - 关于阈值技术/图像二值化的建议