Вставьте все атрибуты и значения JSON в таблицу LUA - PullRequest
0 голосов
/ 07 февраля 2019

Я хотел бы вставить имена атрибутов и значения JSON в таблицу LUA.

local function convert_table(tbl_test)
 local output_table = {}
  for i, v in pairs(tbl_test) do
    output_table [string.lower(i)] = string.lower(v)                     
  end  
 return output_table
end
  local  test  =  cjson.decode(inputJson)
  local  final =  convert_table(test)

Это работает, если мой JSON

 {    "test": "abc",
      "test1": "EDF",
      "test2": "PNG" }

, но не работает для JSON ниже (JSON внутри JSON)

{
  "upper": {
    "test": "abc",
    "test1": "EDF",
    "test2": "PNG",
  }, 
  "lower": {
    "test3": "aabc",
    "test4": "edfa",
    "test5": "png"
  }
}

1 Ответ

0 голосов
/ 07 февраля 2019

Хотя возможно для анализа вложенных конструкций, таких как приведенный выше пример JSON, с использованием обработки образцов Luas, это далеко от его предназначения и, как правило, просто сложно для чего-либо, кроме выделенной библиотеки для этой цели.

Более жизнеспособное решение: либо используйте более мощный инструмент, такой как LPEG ¹ , для создания вашего парсера (что все еще займет некоторое время), либо просто используйте любой из доступных парсеров json для Lua ² ³ .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...