Ten plik EPGP World of Warcraft addon wysyła plik bazy danych epgp.lua.Konwertuj dane Lua na JSON
Napisałem plugin, aby przekonwertować dane Lua na obiekt JSON do wyświetlenia na stronie gildii. Pracował w starszych wersjach dodatku, ale teraz mam problem z próbą przekonwertowania pliku. Oto dwa fragmenty pokazujące problem z konwersją - patrz this demo.
Pierwsze działa świetnie na utworzenie zagnieżdżonych tablicy:
["roster_info"] = {
{
"Agantica", -- [1]
"ROGUE", -- [2]
"09/03-2013", -- [3]
}, -- [1]
{
"Intikamim", -- [1]
"PALADIN", -- [2]
"17/02-2013", -- [3]
}, -- [2]
},
staje
"roster_info" : [
[
"Agantica",
"ROGUE",
"09/03-2013"
],
[
"Intikamim",
"PALADIN",
"17/02-2013"
]
]
Ale zamiennik ciąg widzi to kolejny fragment jako zagnieżdżonej tablicy kiedy powinien on być przedmiotem wewnątrz z tablica:
["bonus_loot_log"] = {
{
["player"] = "Magebox",
["timestamp"] = "2013-03-07 13:44:00",
["coinsLeft"] = "-1",
["reward"] = "|cffa335ee|Hitem:86815:0:0:0:0:0:0:632235520:90:0:445|h[Attenuating Bracers]|h|r",
}, -- [1]
{
["player"] = "Lîutasila",
["coinsLeft"] = "-1",
["timestamp"] = "2013-03-07 13:47:00",
}, -- [2]
},
się
"bonus_loot_log" : [
[
"player" : "Magebox",
"timestamp" : "2013-03-07 13:44:00",
"coinsLeft" : "-1",
"reward" : "|cffa335ee|Hitem:86815:0:0:0:0:0:0:632235520:90:0:445|h[Attenuating Bracers]|h|r"
],
[
"player": "Lîutasila",
"coinsLeft": "-1",
"timestamp": "2013-03-07 13:47:00"
]
]
Oto skrypt konwersji łańcuchów znaków, który działa tylko w pierwszym fragmencie.
lua_string
.replace(/\[(.*)\]\s\=\s/g,'$1:') // change equal to colon & remove outer brackets
.replace(/[\t\r\n]/g,'') // remove tabs & returns
.replace(/\}\,\s--\s\[\d+\]\}/g,']]') // replace sets ending with a comment with square brackets
.replace(/\,\s--\s\[\d+\]/g,',') // remove close subgroup and comment
.replace(/,(\}|\])/g,'$1') // remove trailing comma
.replace(/\}\,\{/g,'],[') // replace curly bracket set with square brackets
.replace(/\{\{/g,'[[') // change double curlies to square brackets
.replace(/EPGP_DB\s\=/,'');
Potrzebuję pomocy w poprawieniu konwersji Lua na szereg obiektów (drugi przykład).
Jak wygenerowano [epgp.lua] (https://github.com/Mottie/epgp/blob/master/epgp.lua)? Jeśli jest to kod lua generujący to wyjście, możesz edytować ten kod i korzystać z biblioteki/modułu LuaJSON. – hjpotter92
Jest generowany przez dodatek po wylogowaniu się z gry World of Warcraft. Wystarczy, że prześlesz nieprzetworzony plik danych do swojej witryny. – Mottie
To z powodu twoich "zamień zestawy kończące się komentarzem za pomocą nawiasów kwadratowych" i "zmień podwójne nawiasy na nawiasy kwadratowe". Podwójne curlies nie są konieczne średnia tablica wewnątrz tablicy. Obiekt wewnątrz tablicy to także podwójne loki w Lua. –