как посчитать количество вложенных массива в строку в Lua



Как подсчитать количество под массивов в строке lua.



У меня есть строка lua в следующем формате,




{{"engName1": "Test1", "validDurPeriod": 0, "appStatus": 2, " engName3":"",
"ExtraInfo": {"returnPeriod": 7,"stayType": 50,"fingerprintInd": 49, "stayPeriod": 6, "medicalInd": 49},}
{"engName1":"Test2","validDurPeriod": 3, "appStatus": 2, " engName3":"", },
{"engName1":"Test3","validDurPeriod":2,"appStatus":2,"engName3":"","ExtraInfo":{"returnPeriod":7,"stayType":50,"fingerprintInd":49,"stayPeriod":6,"medicalInd":49}
}, {"engName1": "Test4", "validDurPeriod": 3, "appStatus": 2, " engName3":"",
},}




Я хочу подсчитать количество суб-массивов в строке lua ,
что-то вроде {{},{},{},{}} так как здесь счет идет на 4



Я попробовал что-то ниже кода, чтобы проверить его содержит массив, но не в состоянии получить точное количество.
ниже код работает для одного массив, но не работает для множественного массива



function checkType(sample)

if string.startswith(sample, "{{", true) or string.startswith(sample, "{ {", true) or string.startswith(sample, "{ {", true) then
return true;
else
return false;
end
end
815   2  
lua

2 ответов:

Если ваша таблица работает правильно, вы должны иметь возможность использовать таблицу функций.getn (таблица).

Примеры:

print(table.getn{10,2,4})          --> 3
print(table.getn{10,2,nil})        --> 2
print(table.getn{n=1000})          --> 1000

a = {}
print(table.getn(a))               --> 0

Я надеюсь, что это делает трюк ;)

Источник: 19.1-Размер Массива

Если s содержит вашу строку, то n ниже содержит счетчик:

local _,n=s:gsub("[^{}]",""):gsub("{}","")

Comments

    Ничего не найдено.