-->
Feedback email
Nhập trông Tin
Gi?i T?h
Send

Chia Sẻ Code Lua Decode Và Encosing Cho Json



Vui lòng kéo xuống dưới ấn nút "Download Script" để tải script mẫu free edit by ModMobile!!

Tôi có 1 mã Json như sau :

Json
local js=[[
{
  "data": {
    "user": {
      "username": "username",
      "type": "TYPE"
    }
  },
  "passport": {
    "user": "uuid"
  },
}
]]    
    


Tôi đã định nghĩa một bộ mã hóa và giải mã JSON đơn giản bằng cách sử dụng các hàm tải và gsub tích hợp sẵn của Lua.

Hàm giải mã lấy một chuỗi JSON làm đầu vào và trả về bảng Lua tương ứng. Nó thực hiện điều này bằng cách thêm một câu lệnh return vào chuỗi đầu vào, sau đó tải mã Lua kết quả bằng tải. Hàm đã tải được gọi để tạo một bảng Lua, sau đó bảng này sẽ được trả về.

Hàm mã hóa lấy bảng Lua làm đầu vào và trả về chuỗi JSON tương ứng. Nó thực hiện điều này bằng cách sử dụng một loạt lệnh gọi gsub để chuyển đổi bảng Lua thành biểu diễn chuỗi JSON. Hàm dường như xử lý các loại dữ liệu cơ bản như chuỗi, số và bảng, nhưng có thể không xử lý các cấu trúc dữ liệu phức tạp hơn hoặc trường hợp cạnh.

Nhìn chung, mã này cung cấp một cách đơn giản để mã hóa và giải mã dữ liệu JSON trong Lua, nhưng nó có thể không mạnh mẽ hoặc hiệu quả như một thư viện JSON chuyên dụng như dkjson. Cũng cần lưu ý rằng mã này giả định rằng bảng Lua đầu vào được định dạng tốt và không chứa các tham chiếu vòng tròn hoặc các vấn đề khác có thể gây ra sự cố trong quá trình mã hóa hoặc giải mã.



Lua
local json = {
 decode = function(js)
  local l = "return " .. js:gsub('("[^"]-"):','[%1]=')
  local tbl = load(l)()
  return tbl
 end,
 encode = function (tbl)
  return (dump or tostring)(tbl)
  :gsub("%['(%w+)'%] = ([%{'%w])", "\"%1\": %2")
  :gsub("%-%- table%b()", "")
  :gsub(": '(.-)'", ": \"%1\"")
  :gsub("([\"%w]),(%s*%})", "%1%2")
 end
}
-- // TEST // --
local js=[[
{
  "data": {
    "user": {
      "username": "username",
      "type": "TYPE"
    }
  },
  "passport": {
    "user": "uuid"
  },
}
]]
print("JSON : ", js)
local tbl = json.decode(js)
print("json.decode :", tbl)
print("json.encode :", json.encode(tbl))
--  Lua json for gg and lua (simple)
-- code by : @nguyendunghehe
See Also :
ModMobile

Subscribe YouTube ModMobile