将lua转换成c#对象

我知道将JSON数据传递到C#对象中是可能的,但是将它用Lua转换成C#对象也是可能的吗?

假设这是我的Lua代码:

data:extend(
{
  {
    type = "technology",
    localised_name = {"technology-name.logistic-science-pack"},
    effects =
    {
      {
        type = "unlock-recipe",
        recipe = "logistic-science-pack"
      }
    },
    unit =
    {
      count = 75,
      ingredients = {{"automation-science-pack", 1}},
      time = 5
    },
  },
  {
    type = "technology",
    localised_name = {"technology-name.chemical-science-pack"},
    effects =
    {
      {
        type = "unlock-recipe",
        recipe = "chemical-science-pack"
      }
    },
    unit =
    {
      count = 75,
      ingredients =
      {
        {"automation-science-pack", 1},
        {"logistic-science-pack", 1}
      },
      time = 10
    },
    prerequisites = {"advanced-electronics", "sulfur-processing"},
  },
}
)

是的,这是相同对象的列表。 这段代码缩短了,是我拿来作为示例的游戏(也是我用Lua进行实验的游戏)。

能否将这段Lua代码/数据转换成C#对象或者至少转换成JSON,以后再将JSON转换成C#对象?

我一直在网上寻找答案,但我所得到的都是如何使用Lua进行脚本编写或编写脚本来创建和存储C#对象的内容。我没有找到解决这个问题的相关内容。

另外,您会推荐什么NuGet软件包吗?似乎在NuGet包浏览器(VS)中有许多此类软件包,网络上也有许多不同的意见。

提前致谢!

点赞
用户7746452
用户7746452

如果你使用 Lua C# 引擎(比如 Nlua),你可以直接从这个引擎获取对象。如果你把 Lua 状态命名为 state,它可以通过 state.DoString ("return data")[0] 返回。

如果你只连接到 C#,你必须使用序列化。JSON 是一个好文档化和成熟的格式,并且有很多 Lua 库。我个人最喜欢的是 dkjson

2020-02-13 04:49:52