Парс таблицы json

$Mr.R1ch$

Участник
Автор темы
92
23
Версия MoonLoader
Другое
У меня есть json таблица с которой я гружу данные в mimgui. А из за того что всё находится в таблице, я пытался сделать поиск по CollapsingHeader в input грузив всё из таблицы json, но не знаю как это сделать. Подскажите, как можно сделать эту функцию?

JSON:
{
"phoenix" : {
 "head1": {
 "article1": {
         "yk1": "Глава I. Преступления против жизни и здоровья.", -- надо парсить такой текст
         "yk": "1.1 УК | Нанесение телесных повреждений без использования предметов,\r\n классифицирующийся как холодное или огнестрельное оружие | 2*.",
         "rp": "/me зажал кнопку на опции и сообщил диспетчеру приметы подозреваемого",
         "rp1": "/do Преступник занесен в базу данных.",
         "zap": "/r Причина запроса - 1.1 УК, 2 степень",
         "zap1": "/r Нанесение телесных повреждений без использования предметов."
         },
         "article2": {
         "yk": "1.2 УК | Нанесение телесных повреждений с использованием предметов,\r\n классифицирующийся как холодное или огнестрельное оружие, а также\r\n спецсредствами | 4*.",
         "rp": "/me зажал кнопку на опции и сообщил диспетчеру приметы подозреваемого",
         "rp1": "/do Преступник занесен в базу данных.",
         "zap": "/r Причина запроса - 1.2 УК, 4 степень",
         "zap1": "/r Нанесение телесных повреждений с использованием предметов, классифицирующийся как холодное или огнестрельное оружие."
      },
      "article3": {
      "yk": "1.5 УК | Угроза расправой | 1*.",
      "rp": "/me зажал кнопку на опции и сообщил диспетчеру приметы подозреваемого",
         "rp1": "/do Преступник занесен в базу данных.",
         "zap": "/r Причина запроса - 1.3 УК, 1 степень",
         "zap1": "/r Угроза расправой"
         }
         },
   
       
         "head2": {
         "article1": {
         "yk1": "Глава III. Преступления против половой неприкосновенности и половой\r\n свободы личности.",
         "yk": "3.1 УК | Изнасилование, то есть половое сношение с применением насилия\r\n или с угрозой его применения к потерпевшей или к другим лицам либо с\r\n использованием беспомощного состояния потерпевшей.",
         "rp": "/me зажал кнопку на опции и сообщил диспетчеру приметы подозреваемого",
         "rp1": "/do Преступник занесен в базу данных.",
         "zap": "/r Причина запроса - 3.1 УК, 5 степень",
         "zap1": "/r Изнасилование, то есть половое сношение с применением насилия или с угрозой его применения к потерпевшей"
            },
            "article2": {
            "yk": "3.2 УК | Понуждение лица к половому сношению, мужеложству, лесбиянству или совершению иных действий сексуального характера путем шантажа, угрозы уничтожением, повреждением или изъятием имущества либо с использованием материальной или иной зависимости потерпевшего (потерпевшей) | 4*.",
            "rp": "/me зажал кнопку на опции и сообщил диспетчеру приметы подозреваемого",
         "rp1": "/do Преступник занесен в базу данных.",
         "zap": "/r Причина запроса - 3.2 УК, 4 степень",
         "zap1": "/r Понуждение лица к половому сношению, мужеложству, лесбиянству или совершению иных действий сексуального характера путем шантажа"
         }
         },
       
         "head3": {
         "article1": {
         "yk1": "Глава IV. Преступления против конституционных прав и свобод человека и гражданина.",
         "yk": "4.1 УК | Незаконный сбор или распространение сведений о частной жизни лица, составляющих его личную или семейную тайну, без его согласия; распространение этих сведений в публичном выступлении, публичном произведении или средствах массовой информации, в том числе с использованием своего служебного положения | 4*.",
         "rp": "/me зажал кнопку на опции и сообщил диспетчеру приметы подозреваемого",
         "rp1": "/do Преступник занесен в базу данных.",
         "zap": "/r Причина запроса - 4.1 УК, 4 степень",
         "zap1": "/r Незаконный сбор или распространение сведений о частной жизни лица"
         },
         "article2": {
         "yk": "4.2 УК | Проникновение в жилище, лицом непрописанном в нём, при отсутствии письменного разрешения владельца, заверенного печатью прокуратуры или на момент отсутствия владельца рядом с жилищем | 3*.",
         "rp": "/me зажал кнопку на опции и сообщил диспетчеру приметы подозреваемого",
         "rp1": "/do Преступник занесен в базу данных.",
         "zap": "/r Причина запроса - 4.2 УК, 3 степень",
         "zap1": "/r Проникновение в жилище, лицом непрописанном в нём, при отсутствии письменного разрешения владельца"
         },
         "article3": {
         "yk": "4.3 УК | Воспрепятствование свободному осуществлению гражданином своих избирательных прав, в том числе соединенные с подкупом, обманом, принуждением, применением насилия либо с угрозой его применения | 3*.",
         "rp": "/me зажал кнопку на опции и сообщил диспетчеру приметы подозреваемого",
         "rp1": "/do Преступник занесен в базу данных.",
         "zap": "/r Причина запроса - 4.3 УК, 3 степень",
         "zap1": "/r Воспрепятствование свободному осуществлению гражданином своих избирательных прав"
         },
         "article4": {
         "yk": "4.4 УК | Воспрепятствование законной профессиональной деятельности журналистов путем принуждения их к распространению либо к отказу от распространения информации; путем незаконного ограничения права поиска, получения, передачи, производства и распространения информации любым законным способом | 2*",
         "rp": "/me зажал кнопку на опции и сообщил диспетчеру приметы подозреваемого",
         "rp1": "/do Преступник занесен в базу данных.",
         "zap": "/r Причина запроса - 4.4 УК, 2 степень",
         "zap1": "/r Воспрепятствование законной профессиональной деятельности"
         },
         "article5": {
         "yk": "4.5 УК | Похищение человека, то есть его захват и перемещение в другое место помимо воли похищенного | 6*",
         "rp": "/me зажал кнопку на опции и сообщил диспетчеру приметы подозреваемого",
         "rp1": "/do Преступник занесен в базу данных.",
         "zap": "/r Причина запроса - 4.5 УК, 6 степень",
         "zap1": "/r Воспрепятствование законной профессиональной деятельности"
            }
                }
         }
}

Lua:
for k,v in ipairs() do -- в скобках надо парсить таблицу json

        if u8(v):find(ffi.string(search)) then
       
            if imgui.CollapsingHeader(u8(v)) then
           
         end
     end
 end
 

Вложения

  • Screenshot_2024_0310_094952.jpg
    Screenshot_2024_0310_094952.jpg
    102.3 KB · Просмотры: 16
  • Ха-ха
Реакции: Vespan

хуега)

РП игрок
Модератор
2,565
2,260
У меня есть json таблица с которой я гружу данные в mimgui. А из за того что всё находится в таблице, я пытался сделать поиск по CollapsingHeader в input грузив всё из таблицы json, но не знаю как это сделать. Подскажите, как можно сделать эту функцию?

JSON:
{
"phoenix" : {
 "head1": {
 "article1": {
         "yk1": "Глава I. Преступления против жизни и здоровья.", -- надо парсить такой текст
         "yk": "1.1 УК | Нанесение телесных повреждений без использования предметов,\r\n классифицирующийся как холодное или огнестрельное оружие | 2*.",
         "rp": "/me зажал кнопку на опции и сообщил диспетчеру приметы подозреваемого",
         "rp1": "/do Преступник занесен в базу данных.",
         "zap": "/r Причина запроса - 1.1 УК, 2 степень",
         "zap1": "/r Нанесение телесных повреждений без использования предметов."
         },
         "article2": {
         "yk": "1.2 УК | Нанесение телесных повреждений с использованием предметов,\r\n классифицирующийся как холодное или огнестрельное оружие, а также\r\n спецсредствами | 4*.",
         "rp": "/me зажал кнопку на опции и сообщил диспетчеру приметы подозреваемого",
         "rp1": "/do Преступник занесен в базу данных.",
         "zap": "/r Причина запроса - 1.2 УК, 4 степень",
         "zap1": "/r Нанесение телесных повреждений с использованием предметов, классифицирующийся как холодное или огнестрельное оружие."
      },
      "article3": {
      "yk": "1.5 УК | Угроза расправой | 1*.",
      "rp": "/me зажал кнопку на опции и сообщил диспетчеру приметы подозреваемого",
         "rp1": "/do Преступник занесен в базу данных.",
         "zap": "/r Причина запроса - 1.3 УК, 1 степень",
         "zap1": "/r Угроза расправой"
         }
         },
  
      
         "head2": {
         "article1": {
         "yk1": "Глава III. Преступления против половой неприкосновенности и половой\r\n свободы личности.",
         "yk": "3.1 УК | Изнасилование, то есть половое сношение с применением насилия\r\n или с угрозой его применения к потерпевшей или к другим лицам либо с\r\n использованием беспомощного состояния потерпевшей.",
         "rp": "/me зажал кнопку на опции и сообщил диспетчеру приметы подозреваемого",
         "rp1": "/do Преступник занесен в базу данных.",
         "zap": "/r Причина запроса - 3.1 УК, 5 степень",
         "zap1": "/r Изнасилование, то есть половое сношение с применением насилия или с угрозой его применения к потерпевшей"
            },
            "article2": {
            "yk": "3.2 УК | Понуждение лица к половому сношению, мужеложству, лесбиянству или совершению иных действий сексуального характера путем шантажа, угрозы уничтожением, повреждением или изъятием имущества либо с использованием материальной или иной зависимости потерпевшего (потерпевшей) | 4*.",
            "rp": "/me зажал кнопку на опции и сообщил диспетчеру приметы подозреваемого",
         "rp1": "/do Преступник занесен в базу данных.",
         "zap": "/r Причина запроса - 3.2 УК, 4 степень",
         "zap1": "/r Понуждение лица к половому сношению, мужеложству, лесбиянству или совершению иных действий сексуального характера путем шантажа"
         }
         },
      
         "head3": {
         "article1": {
         "yk1": "Глава IV. Преступления против конституционных прав и свобод человека и гражданина.",
         "yk": "4.1 УК | Незаконный сбор или распространение сведений о частной жизни лица, составляющих его личную или семейную тайну, без его согласия; распространение этих сведений в публичном выступлении, публичном произведении или средствах массовой информации, в том числе с использованием своего служебного положения | 4*.",
         "rp": "/me зажал кнопку на опции и сообщил диспетчеру приметы подозреваемого",
         "rp1": "/do Преступник занесен в базу данных.",
         "zap": "/r Причина запроса - 4.1 УК, 4 степень",
         "zap1": "/r Незаконный сбор или распространение сведений о частной жизни лица"
         },
         "article2": {
         "yk": "4.2 УК | Проникновение в жилище, лицом непрописанном в нём, при отсутствии письменного разрешения владельца, заверенного печатью прокуратуры или на момент отсутствия владельца рядом с жилищем | 3*.",
         "rp": "/me зажал кнопку на опции и сообщил диспетчеру приметы подозреваемого",
         "rp1": "/do Преступник занесен в базу данных.",
         "zap": "/r Причина запроса - 4.2 УК, 3 степень",
         "zap1": "/r Проникновение в жилище, лицом непрописанном в нём, при отсутствии письменного разрешения владельца"
         },
         "article3": {
         "yk": "4.3 УК | Воспрепятствование свободному осуществлению гражданином своих избирательных прав, в том числе соединенные с подкупом, обманом, принуждением, применением насилия либо с угрозой его применения | 3*.",
         "rp": "/me зажал кнопку на опции и сообщил диспетчеру приметы подозреваемого",
         "rp1": "/do Преступник занесен в базу данных.",
         "zap": "/r Причина запроса - 4.3 УК, 3 степень",
         "zap1": "/r Воспрепятствование свободному осуществлению гражданином своих избирательных прав"
         },
         "article4": {
         "yk": "4.4 УК | Воспрепятствование законной профессиональной деятельности журналистов путем принуждения их к распространению либо к отказу от распространения информации; путем незаконного ограничения права поиска, получения, передачи, производства и распространения информации любым законным способом | 2*",
         "rp": "/me зажал кнопку на опции и сообщил диспетчеру приметы подозреваемого",
         "rp1": "/do Преступник занесен в базу данных.",
         "zap": "/r Причина запроса - 4.4 УК, 2 степень",
         "zap1": "/r Воспрепятствование законной профессиональной деятельности"
         },
         "article5": {
         "yk": "4.5 УК | Похищение человека, то есть его захват и перемещение в другое место помимо воли похищенного | 6*",
         "rp": "/me зажал кнопку на опции и сообщил диспетчеру приметы подозреваемого",
         "rp1": "/do Преступник занесен в базу данных.",
         "zap": "/r Причина запроса - 4.5 УК, 6 степень",
         "zap1": "/r Воспрепятствование законной профессиональной деятельности"
            }
                }
         }
}

Lua:
for k,v in ipairs() do -- в скобках надо парсить таблицу json

        if u8(v):find(ffi.string(search)) then
      
            if imgui.CollapsingHeader(u8(v)) then
          
         end
     end
 end
 

$Mr.R1ch$

Участник
Автор темы
92
23
?
 
  • Ха-ха
Реакции: Vespan

хуега)

РП игрок
Модератор
2,565
2,260
Тебе надо читать json таблицу из строки/файла (в будущем всё равно будет строка), для этого можешь воспользоваться функцией decodeJson из мун апи, пример есть в теме, что я скинул
 

$Mr.R1ch$

Участник
Автор темы
92
23
Тебе надо читать json таблицу из строки/файла (в будущем всё равно будет строка), для этого можешь воспользоваться функцией decodeJson из мун апи, пример есть в теме, что я скинул
Я забыл же скинуть в коде то, что json таблица уже читается
Lua:
local file = io.open("yk.json", "r")
a = file:read("*a")
file:close()
yk = decodeJson(a)

Я забыл же скинуть в коде то, что json таблица уже читается
Lua:
local file = io.open("yk.json", "r")
a = file:read("*a")
file:close()
yk = decodeJson(a)
Мне надо понять, как его парсить в самом скрипте для выполнения функции
 
  • Ха-ха
Реакции: Vespan

хуега)

РП игрок
Модератор
2,565
2,260
Я забыл же скинуть в коде то, что json таблица уже читается
Lua:
local file = io.open("yk.json", "r")
a = file:read("*a")
file:close()
yk = decodeJson(a)


Мне надо понять, как его парсить в самом скрипте для выполнения функции
Lua:
local file = io.open("yk.json", "r")
local a = file:read("*a")
file:close()
local yk = decodeJson(a)


-- используй pairs для пары ключ-значение
for k, v in pairs(yk) do
    print(k, v)
end