首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >有没有一种干净的方法将lua表(作为字符串)转换为javascript数组?(反之亦然)

有没有一种干净的方法将lua表(作为字符串)转换为javascript数组?(反之亦然)
EN

Stack Overflow用户
提问于 2019-09-25 20:07:31
回答 3查看 871关注 0票数 0

编辑:将lua表作为字符串,并使用javascript将其转换为javascript数组。在lua中没有编程。

因此,lua表只是一个不同格式的关联数组。

代码语言:javascript
运行
AI代码解释
复制
    --LUA TABLE EXAMPLE
    {
    ["glow"] = true,
    ["xOffset"] = -287.99981689453,
    ["yOffset"] = -227.55575561523,
    ["anchorPoint"] = "CENTER",
    ["cooldownSwipe"] = true,
    ["customTextUpdate"] = "update",
    ["cooldownEdge"] = false,
    ["icon"] = true,
    ["useglowColor"] = false,
    ["internalVersion"] = 24,
    ["keepAspectRatio"] = false,
    ["animation"] = {
        ["start"] = {
            ["duration_type"] = "seconds",
            ["type"] = "none",
        },
        ["main"] = {
            ["duration_type"] = "seconds",
            ["type"] = "none",
        },
        ["finish"] = {
            ["duration_type"] = "seconds",
            ["type"] = "none",
        },
    }

我四处寻找了一些javascript函数或库来实现这一点,尽管我只遇到了一些lua库来将json转换为lua表。lua表总是在一个字符串中。有没有办法做到这一点?

EN

回答 3

Stack Overflow用户

发布于 2019-09-25 20:19:10

您可以手动将其设置为有效的JSON,然后对其进行解析:

代码语言:javascript
运行
AI代码解释
复制
const luaStr = `{
    ["glow"] = true,
    ["xOffset"] = -287.99981689453,
    ["yOffset"] = -227.55575561523,
    ["anchorPoint"] = "CENTER",
    ["cooldownSwipe"] = true,
    ["customTextUpdate"] = "update",
    ["cooldownEdge"] = false,
    ["icon"] = true,
    ["useglowColor"] = false,
    ["internalVersion"] = 24,
    ["keepAspectRatio"] = false,
    ["animation"] = {
        ["start"] = {
            ["duration_type"] = "seconds",
            ["type"] = "none",
        },
        ["main"] = {
            ["duration_type"] = "seconds",
            ["type"] = "none",
        },
        ["finish"] = {
            ["duration_type"] = "seconds",
            ["type"] = "none",
        },
    }}`;

const result = luaStr  
  .replace(/\[|\]/g, '') // remove the brackets
  .replace(/=/g, ':') // replace the = with :
  .replace(/(\,)(?=\s*})/g, ''); // remove trailing commas
  
const parsed = JSON.parse(result);

console.log(result);

票数 1
EN

Stack Overflow用户

发布于 2019-09-25 20:45:33

这只是一个部分的解决方案。在字符串中的文本与键语法匹配的某些情况下,它可能会失败。但这可能不是你关心的问题。

代码语言:javascript
运行
AI代码解释
复制
const lua = `
{
    ["glow"] = true,
    ["xOffset"] = -287.99981689453,
    ["yOffset"] = -227.55575561523,
    ["anchorPoint"] = "CENTER",
    ["cooldownSwipe"] = true,
    ["customTextUpdate"] = "update",
    ["cooldownEdge"] = false,
    ["icon"] = true,
    ["useglowColor"] = false,
    ["internalVersion"] = 24,
    ["keepAspectRatio"] = false,
    ["animation"] = {
        ["start"] = {
            ["duration_type"] = "seconds",
            ["type"] = "none",
        },
        ["main"] = {
            ["duration_type"] = "seconds",
            ["type"] = "none",
        },
        ["finish"] = {
            ["duration_type"] = "seconds",
            ["type"] = "none",
        },
    }
}`

const lua2json = lua => 
  JSON .parse (lua .replace (
    /\[([^\[\]]+)\]\s*=/g, 
    (s, k) => `${k} :`
  ) 
  .replace (/,(\s*)\}/gm, (s, k) => `${k}}`))

console .log (
  lua2json (lua)
)

我不知道您是想创建JSON还是一个对象。我选择了后者,但是您可以随时删除JSON.parse包装器。

票数 1
EN

Stack Overflow用户

发布于 2019-09-25 20:39:52

这里有一些你可能不知道的东西,{ ["someString"]: 2 }是有效的javascript,它的计算结果是{someString: 2},这是有效的json。唯一的问题是它需要被评估,这意味着使用eval (如果你可以避免的话,你真的永远不应该这样做)。

代码语言:javascript
运行
AI代码解释
复制
const luaStr = `{
    ["glow"] = true,
    ["xOffset"] = -287.99981689453,
    ["yOffset"] = -227.55575561523,
    ["anchorPoint"] = "CENTER",
    ["cooldownSwipe"] = true,
    ["customTextUpdate"] = "update",
    ["cooldownEdge"] = false,
    ["icon"] = true,
    ["useglowColor"] = false,
    ["internalVersion"] = 24,
    ["keepAspectRatio"] = false,
    ["animation"] = {
        ["start"] = {
            ["duration_type"] = "seconds",
            ["type"] = "none",
        },
        ["main"] = {
            ["duration_type"] = "seconds",
            ["type"] = "none",
        },
        ["finish"] = {
            ["duration_type"] = "seconds",
            ["type"] = "none",
        },
    }}`;
    
const jsonString = luaStr.replace(/\] = /g, ']: ');
const jsonObj = eval(`(${jsonString})`);

console.log(jsonObj);

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/58105883

复制
相关文章
Java将列表转换为数组,反之亦然
在本文中, 我们将快速学习如何将Java List (例如ArrayList )转换为数组,反之亦然。 如果您希望总体上了解有关ArrayList的更多信息,请随时阅读我们有关Java ArrayLists的文章。
用户7886150
2021/04/28
3.5K0
java数组转为字符串_join()和toString()方法 将数组转换为字符串
join()方法将数组中所有的元素转化为字符串,并将这些字符串有逗号隔开合并成一个字符串作为方法的结果返回。如果调用时给定参数string,就将string作为在结果字符串中分开有各个数组元素形成的字符串的分隔符。
用户7886150
2021/04/06
5.1K0
java将字符串转换为json对象的方法_java jsonobject转string
在与服务器交互的时候,我们往往会使用json字符串,今天的例子是java对象转化为字符串,
全栈程序员站长
2022/11/08
21.8K0
JavaScript SheetJS将 Html 表转换为 Excel 文件
在本教程中,我们可以在客户端从我们的 HTML 表数据创建一个 excel 文件。即使用javascript将HTML 表导出到Excel (.xlsx)。
全栈程序员站长
2022/09/09
5.5K0
mysql整型转字符串_java中如何将字符串转换为字符数组
select * from A order by cast(name as unsigned);
全栈程序员站长
2022/09/27
23.9K0
c++如何将字符串转为数组(将字符串转换为数组)
string [] imgArr=imgData.Split(new char[]{‘,’});
全栈程序员站长
2022/07/29
7.2K0
React技巧之将useState作为字符串数组
原文链接:https://bobbyhadz.com/blog/react-typescript-usestate-empty-object[1]
chuckQu
2022/08/19
8490
React技巧之将useState作为字符串数组
js数组对象转字符串方法_数组表示
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
全栈程序员站长
2022/09/30
6.8K0
Java字符串数组转集合方法
数组转集合方法 使用 Arrays.asList(数组) 代码如下: //定义一个字符串 String zhuan = "1,2,3,4,5,6,7,8,9"; //分割字符串 String[] split = zhuan.split(","); // 把数组转成集合 List<String> stringList = Arrays.asList(split); //输出结果 Syste
用户9006224
2022/12/21
2.3K0
分享 6 个将字符串转换为数组的 JS 函数
英文 | https://sanchithasr.medium.com/6-ways-to-convert-string-to-array-in-javascript-a57dac463464
前端达人
2022/11/25
4.5K0
分享 6 个将字符串转换为数组的 JS 函数
将字符串转换为date类型_java字符串转date类型
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
全栈程序员站长
2022/11/09
14.5K0
将特征转换为正态分布的一种方法示例
来源:Deephub Imba本文约2100字,建议阅读9分钟本文为你介绍如何将数据转换成正态分布来建立模型。 正态(高斯)分布在机器学习中起着核心作用,线性回归模型中要假设随机误差等方差并且服从正态分布,如果变量服从正态分布,那么更容易建立理论结果。 统计学领域的很大一部分研究都是假设数据是正态分布的,所以如果我们的数据具有是正态分布,那么则可以获得更好的结果。但是一般情况下我们的数据都并不是正态分布,所以如果我们能将这些数据转换成正态分布那么对我们建立模型来说是一件非常有帮助的事情。 standar
数据派THU
2022/09/19
3800
将特征转换为正态分布的一种方法示例
将特征转换为正态分布的一种方法示例
正态(高斯)分布在机器学习中起着核心作用,线性回归模型中要假设随机误差等方差并且服从正态分布,如果变量服从正态分布,那么更容易建立理论结果。
deephub
2022/11/11
3220
将特征转换为正态分布的一种方法示例
字符串数组转集合_安全方法把字符串转集合
//字符串拆分转集合 List<String> result = Arrays.asList(str.split(“,”));
全栈程序员站长
2022/11/04
1.8K0
面试将横表转换为竖表?
可以看出与要给出的结果一样其中还对会出现空做了判断,当然在真实的面试中还是不要画蛇添足了 5、这样也是可以达到效果的
技术从心
2019/08/06
8290
面试将横表转换为竖表?
lua字符串截取_lua删除数组元素
string.sub(str,1,string.len(str)-1) — hello word
全栈程序员站长
2022/11/08
1.3K0
PHP获取数组表示的路径方法分析【数组转字符串
本文实例讲述了PHP获取数组表示的路径方法。分享给大家供大家参考,具体如下: 问题: 文件解析过程中发现一段路径用数组的形式存储,现需要将完整路径以字符串形式输出 解决方法:
用户2323866
2021/07/05
2.3K0
Java基础常用方法:copyValueOf()方法——数组转字符串
String.copyValueOf() 这个方法可以将数组转为字符串 有两种写法: copyValueOf(char[] data): 返回指定数组中表示该字符序列的字符串。 copyValueOf(char[] data, int start, int count):返回指定数组中指定片段的字符串。 start:开始下标 count:长度 举个栗子: public class Test { public static void main(String args[]) {
向着百万年薪努力的小赵
2022/12/02
5300
点击加载更多

相似问题

在Bash中,有没有一种“更干净”的方法将stdin替换为字符串?

23

将javascript“几乎数组”转换为“数组”的最干净的方法是什么?

34

将Lua表转换为C数组?

12

是否有一种简单的方法将lua表转换为C++数组或向量?

15

有没有一种更干净的方法来创建数组?

216
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
社区富文本编辑器全新改版!诚邀体验~
全新交互,全新视觉,新增快捷键、悬浮工具栏、高亮块等功能并同时优化现有功能,全面提升创作效率和体验
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档