first commit
This commit is contained in:
44
lua/meteo.lua
Normal file
44
lua/meteo.lua
Normal file
@@ -0,0 +1,44 @@
|
||||
-- Chargement de la bibliothèque Lua pour effectuer des requêtes HTTP
|
||||
local http = require("socket.http")
|
||||
local json = require("json")
|
||||
|
||||
-- Fonction pour effectuer une requête HTTP et renvoyer le contenu JSON en tant que tableau
|
||||
function getJsonFromUrl(url)
|
||||
local response = http.request(url) -- Effectue la requête HTTP
|
||||
return json.decode(response) -- Décode la réponse JSON en tant que tableau
|
||||
end
|
||||
|
||||
-- Fonction récursive pour rechercher une valeur dans un tableau multidimensionnel
|
||||
function searchValueInTable(value, tbl)
|
||||
for k, v in pairs(tbl) do
|
||||
if v == value then
|
||||
return k -- Retourne la clé si la valeur est trouvée
|
||||
elseif type(v) == "table" then
|
||||
local result = searchValueInTable(value, v) -- Appel récursif si la valeur est un tableau
|
||||
if result then
|
||||
return k .. "." .. result -- Retourne la clé trouvée concaténée avec la clé actuelle
|
||||
end
|
||||
end
|
||||
end
|
||||
return nil -- Retourne nil si la valeur n'est pas trouvée
|
||||
end
|
||||
|
||||
-- Exemple d'utilisation
|
||||
local url = "http://api.openweathermap.org/data/2.5/weather?q=La gacilly,fr&APPID=feba3f4d926db3b358a25ec782bd1c8b&lang=FR&units=metric" -- URL à appeler
|
||||
local jsonData = getJsonFromUrl(url) -- Appel de la fonction pour obtenir le tableau JSON
|
||||
|
||||
-- Affichage du contenu du tableau JSON
|
||||
for k, v in pairs(jsonData) do
|
||||
print(k, v)
|
||||
end
|
||||
|
||||
-- Recherche d'une valeur spécifique dans le tableau JSON
|
||||
local searchValue = "valeurRecherchee"
|
||||
local searchResult = searchValueInTable(searchValue, jsonData)
|
||||
|
||||
if searchResult then
|
||||
print("La valeur", searchValue, "a été trouvée à la clé", searchResult)
|
||||
else
|
||||
print("La valeur", searchValue, "n'a pas été trouvée dans le tableau")
|
||||
end
|
||||
|
||||
Reference in New Issue
Block a user