Einbinden von Webservices in todo4teams (JSON-Daten in ein Formular)
In diesem Tutorial wird die Möglichkeit der Integration von Webservices in todo4teams mithilfe von JSON-Daten erläutert, die von einer Website übertragen werden.
Zur Übertragung und Speicherung strukturierter Daten wird die JavaScript Object Notation, kurz JSON, verwendet. Insbesondere bei Webanwendungen und mobilen Apps wird es häufig zur Datenübertragung zwischen einem Client und einem Server verwendet.
In unserem Beispiel verwenden wir die Wetterdaten der Website openweathermap.org. Die Datenübertragung erfolgt über eine JSON-Datei mit folgendem Aufbau:
"coord":{"lon":7.35,"lat":51.44},
"weather":
[{"id":800,"main":"Clear","description":"clear sky","icon":"01d"}],
"base":"stations",
"main":{"temp":285.63,"pressure":997,"humidity":81,"temp_min":284.15,"temp_max":287.59},
"visibility":10000,
"wind":{"speed":4.6,"deg":170},
"clouds":{"all":0},
"dt":1557389049,
"sys":{"type":1,"id":1306,"message":0.0069,"country":"DE","sunrise":1557373747,"sunset":1557428701},
"id":2807363,
"name":"Witten",
"cod":200
}
Verwenden Sie die Methode com.proxemo.xutl.XUTLUrlReader.getStringFromUrl, um die Daten vom Remote-Server abzurufen.
Nachdem Sie die JSON-Datenstruktur vom Server empfangen haben, verwenden Sie die folgende Zeile, um diese Zeichenfolge in eine Javascript-Datenstruktur umzuwandeln:
var jso = eval('('+results+')');
Jetzt speichert jso.main.temp den aktuellen Temperaturwert in Kelvin.
{
var results=null;
try{
results= com.proxemo.xutl.XUTLUrlReader.getStringFromUrl("https://api.openweathermap.org/data/2.5/weather?lat=51.4438926&lon=7.353197&APPID=????????", 2000, 2000);
}
catch(e){
println("Error: "+e);
result="error";
helper.errorMessage("Could not fetch weather data!");
}
println(results);
var jso = eval('('+results+')');
var coord = jso.coord;
var weather = jso.weather[0];
var base = jso.base;
var main = jso.main;
var visibility = jso.visibility;
println ("Temperature (°C): " + (main.temp-273.15));