Danke für die Antwort,
ich habe mal einen Testcode aufgebaut, in dem der ‘returnvalue’-String bereits gesetzt ist. Aber irgendwie kann ich nicht auf ‘returnvaluejson.metric.precipTotal’ zugreifen: was mache ich falsch ?
var webPage = require(‘webpage’);
var page = webPage.create();
var url = ‘www.google.com’;
page.open(url, function(status) {
var returnvalue = ‘{“observations”:[{“stationID”:“xxxxxx”,“obsTimeUtc”:“2020-08-28T08:44:49Z”,“obsTimeLocal”:“2020-08-28 10:44:49”,“neighborhood”:“Räbke”,“softwareType”:“EasyWeatherV1.5.1”,“country”:“DE”,“solarRadiation”:664.2,“lon”:10.859,“realtimeFrequency”:null,“epoch”:1598604289,“lat”:52.191,“uv”:6.0,“winddir”:141,“humidity”:78,“qcStatus”:1,“metric”:{“temp”:19,“heatIndex”:19,“dewpt”:15,“windChill”:19,“windSpeed”:6,“windGust”:9,“pressure”:1003.01,“precipRate”:0.00,“precipTotal”:1.09,“elev”:171}}]}’;
console.log(returnvalue);
try{
var rawValue = returnvalue.replace(/“/g, '"')
rawValue = rawValue.replace(/”/g, '"');
console.log(rawValue);
var returnvaluejson = JSON.parse(returnvalue);
console.log(returnvaluejson);
console.log('precipTotal= '+ returnvaluejson.metric.precipTotal);
}catch(e){
console.error(e);
}
phantom.exit();
});
Ergebnis:
pi@raspberrypi3:~ $ phantomjs test.js
{“observations”:[{“stationID”:“xxxxxx”,“obsTimeUtc”:“2020-08-28T08:44:49Z”,“obsTimeLocal”:“2020-08-28 10:44:49”,“neighborhood”:“Räbke”,“softwareType”:“EasyWeatherV1.5.1”,“country”:“DE”,“solarRadiation”:664.2,“lon”:10.859,“realtimeFrequency”:null,“epoch”:1598604289,“lat”:52.191,“uv”:6.0,“winddir”:141,“humidity”:78,“qcStatus”:1,“metric”:{“temp”:19,“heatIndex”:19,“dewpt”:15,“windChill”:19,“windSpeed”:6,“windGust”:9,“pressure”:1003.01,“precipRate”:0.00,“precipTotal”:1.09,“elev”:171}}]}
{“observations”:[{“stationID”:“xxxxxx”,“obsTimeUtc”:“2020-08-28T08:44:49Z”,“obsTimeLocal”:“2020-08-28 10:44:49”,“neighborhood”:“Räbke”,“softwareType”:“EasyWeatherV1.5.1”,“country”:“DE”,“solarRadiation”:664.2,“lon”:10.859,“realtimeFrequency”:null,“epoch”:1598604289,“lat”:52.191,“uv”:6.0,“winddir”:141,“humidity”:78,“qcStatus”:1,“metric”:{“temp”:19,“heatIndex”:19,“dewpt”:15,“windChill”:19,“windSpeed”:6,“windGust”:9,“pressure”:1003.01,“precipRate”:0.00,“precipTotal”:1.09,“elev”:171}}]}
[object Object]
TypeError: undefined is not an object (evaluating ‘returnvaluejson.metric.precipTotal’)
phantomjs://code/test.js:20
Irgendwie der gleiche Fehler: kein Objekt ?!
Könntest Du bitte nochmal drüber schauen ? Ich bin ein lausiger Anfänger mit JS.