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:
{ 0, 0, 0 }
Po przekonwertowaniu na JSON może wyglądać tak:
[[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:
[Development]/_tW_tableToJSON
Jak działa generator JSON?
Generator znajduje się w zasobie:
[Development]/_tW_tableToJSON
Aby wygenerować JSON:
- Otwórz plik
c_main.lua. - Wklej swoją tablicę Lua do odpowiedniej zmiennej.
- Zrestartuj zasób.
- Skopiuj wynik wyświetlony na chacie.
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:
{ 0, 0, 0 }
Aby wygenerować JSON dla takiej tablicy, w pliku c_main.lua zmień wartość zmiennej:
local normalTable = { 0, 0, 0 }
Po restarcie zasobu na chacie pojawi się wynik podobny do tego:
normalTable: [[0, 0, 0]]
Poprawnie skopiowany JSON to:
[[0, 0, 0]]
Nie należy kopiować tego fragmentu:
normalTable:
Generowanie tablicy wielowarstwowej
Tablica wielowarstwowa to tablica, która zawiera w sobie kolejne tablice.
Przykład tablicy Lua:
{
{ 0, 0, 0 },
{ 0, 0, 0 },
{ 0, 0, 0 },
}
Aby wygenerować JSON dla takiej tablicy, w pliku c_main.lua zmień wartość zmiennej:
local tableInTable = {
{ 0, 0, 0 },
{ 0, 0, 0 },
{ 0, 0, 0 },
}
Po restarcie zasobu na chacie pojawi się wynik podobny do tego:
tableInTable: [[[0, 0, 0], [0, 0, 0], [0, 0, 0]]]
Poprawnie skopiowany JSON to:
[[[0, 0, 0], [0, 0, 0], [0, 0, 0]]]
Nie należy kopiować tego fragmentu:
tableInTable:
Najczęstszy błąd
Najczęstszym błędem jest skopiowanie całej wiadomości z chatu razem z nazwą zmiennej.
Źle:
normalTable: [[0, 0, 0]]
Dobrze:
[[0, 0, 0]]