Skip to main content

Czym jest JSON i jak go wygenerować?

Czym jest JSON?

JSON to tekstowy format zapisu danych. Pozwala zapisywać proste oraz bardziej złożone informacje w uporządkowanej formie.

W systemie TruckWEB JSON jest używany między innymi do zapisywania danych podobnych do tablic Lua, na przykład:

  • list pozycji,
  • cen paliw,
  • ilości paliwa,
  • pojemności zbiorników,
  • konfiguracji obiektów w systemie.

Przykładowa tablica Lua:

Tablica Lua
{ 0, 0, 0 }

Po przekonwertowaniu na JSON może wyglądać tak:

Przekonwertowana tablica Lua do JSON
[[0, 0, 0]]

Kiedy trzeba wygenerować JSON?

JSON należy wygenerować wtedy, gdy dokumentacja lub konfiguracja wymaga wklejenia danych w formacie JSON, a dane źródłowe są zapisane jako tablica Lua.

Do konwersji tablic Lua na JSON zalecane jest użycie zasobu:

Nazwa zasobu
[Development]/_tW_tableToJSON

Jak działa generator JSON?

Generator znajduje się w zasobie:

Nazwa zasobu
[Development]/_tW_tableToJSON

Aby wygenerować JSON:

  1. Otwórz plik c_main.lua.
  2. Wklej swoją tablicę Lua do odpowiedniej zmiennej.
  3. Zrestartuj zasób.
  4. Skopiuj wynik wyświetlony na chacie.
warning

Z chatu należy kopiować tylko samą tablicę JSON, bez nazwy zmiennej wyświetlanej przed wynikiem.


Generowanie pojedynczej tablicy

Pojedyncza tablica to tablica, która przechowuje pojedynczy zestaw danych.

Przykład tablicy Lua:

Tablica Lua
{ 0, 0, 0 }

Aby wygenerować JSON dla takiej tablicy, w pliku c_main.lua zmień wartość zmiennej:

Zmienna w Lua
local normalTable = { 0, 0, 0 }

Po restarcie zasobu na chacie pojawi się wynik podobny do tego:

Wiadomość na chacie po konwersji
normalTable: [[0, 0, 0]]

Poprawnie skopiowany JSON to:

Przekonwertowana tablica Lua do JSON
[[0, 0, 0]]

Nie należy kopiować tego fragmentu:

Przedrostek wiadomości
normalTable:

Generowanie tablicy wielowarstwowej

Tablica wielowarstwowa to tablica, która zawiera w sobie kolejne tablice.

Przykład tablicy Lua:

Tablica Lua
{
{ 0, 0, 0 },
{ 0, 0, 0 },
{ 0, 0, 0 },
}

Aby wygenerować JSON dla takiej tablicy, w pliku c_main.lua zmień wartość zmiennej:

Tablica Lua
local tableInTable = {
{ 0, 0, 0 },
{ 0, 0, 0 },
{ 0, 0, 0 },
}

Po restarcie zasobu na chacie pojawi się wynik podobny do tego:

Wiadomość na chacie po konwersji
tableInTable: [[[0, 0, 0], [0, 0, 0], [0, 0, 0]]]

Poprawnie skopiowany JSON to:

Przekonwertowana tablica Lua do JSON
[[[0, 0, 0], [0, 0, 0], [0, 0, 0]]]

Nie należy kopiować tego fragmentu:

Przedrostek wiadomości
tableInTable:

Najczęstszy błąd

Najczęstszym błędem jest skopiowanie całej wiadomości z chatu razem z nazwą zmiennej.

Źle:

Wiadomość na chacie po konwersji
normalTable: [[0, 0, 0]]

Dobrze:

Przekonwertowana tablica Lua do JSON
[[0, 0, 0]]