Это только частичное решение.Может произойти сбой в некоторых случаях, когда текст внутри строки соответствует синтаксису ключа.Но это может не беспокоить вас.
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
.