+ Antworten
Ergebnis 1 bis 9 von 9
  1. #1
    Registriert seit
    May 2012
    Ort
    Braunfels
    Beiträge
    654

    Standard Mal wieder JSON => Ergebnis = NULL

    Hi,

    ich möchte gerne einen JSON String zerlegen - bekomme es aber nicht hin.

    Ich lade ihn mit:

    PHP-Code:
    $ch curl_init();
    curl_setopt($chCURLOPT_SSL_VERIFYPEERfalse);
    curl_setopt($chCURLOPT_RETURNTRANSFERtrue);
    curl_setopt($chCURLOPT_URL'http://192.168.1.214/api/realTimeData.html');
    curl_setopt($chCURLOPT_TIMEOUT5);
    $json curl_exec($ch);
    curl_close($ch);

    var_dump($json);

    $data json_decode($json);


    var_dump($data);

    $PowerNow $data->Data;
    echo 
    "Result ".$PowerNow
    Beim oberen var_dump kommt er:

    string(274) "{"method":"uploadsn","version":"Solax_SI_CH_2nd_2 0150902_DE01","type":"AL_SE","SN":"1761A29A","Data ":[0.0,0.0,0.0,0.0,3.1,230.4,677,33,9.0,12393.0,-40,0,0,49.66,-15.37,-765,21,25,0.0,4347.1,,,,,,,,,,,,,,,,,,,,,,8386.20, 22597.10,,,,,,,,50.00,,,0.0,0.0,0,0.00,0],"Status":"2"}"

    Beim 2. var_dump kommt

    NULL

    also nach dem decode. Ich habe schon decode(encode) probiert ... mit , true, ohne usw. Ich bin zu doof an die "Data" Werte zu kommen ... da habe ich auch schon ->Data[0] probiert, aber irgendwie scheint es vorher beim decode zu haken?

    Was mache ich hier falsch?
    Symcon 5 beta auf Symbox, 110+ HomeMatic Komponenten (Alle Funk - Rolladen, Licht, Schalter, Taster, KeyMatic, Fenster, Regensensor, WinMatic etc.), Davis Vantage Pro (via Meteobridge Nano), Sonos 1 // 3000+ Variablen // 2 WebFronts // iOS // Android clients / Google Home / 2 Repeater / Unifi / Fritzbox PBX

  2. #2
    Registriert seit
    Oct 2011
    Ort
    Hattersheim (Hessen)
    Beiträge
    7,024

    Zitat Zitat von BommelPommel Beitrag anzeigen
    Was mache ich hier falsch?
    Wenn Du das "json" durch einen Validator jagst, wie JSON Validator, wirst Du feststellen, dass es sich um kein gültiges JSON handelt, daher kann PHP das auch nicht dekodieren.

  3. #3
    Registriert seit
    Mar 2008
    Ort
    Ruesselsheim
    Beiträge
    3,761

    Hallo
    Teste mal dein $data mit einen JSON-Tester zB
    https://jsonlint.com/
    Dann siehst du deine ganzen ",,,,,,,,,," sind das Problem.
    Error: Parse error on line 6:
    ...1, 25, 0.0, 4347.1, , , , , , , , , , ,
    -----------------------^
    Expecting 'STRING', 'NUMBER', 'NULL', 'TRUE', 'FALSE', '{', '[', got ','

  4. #4
    Registriert seit
    May 2012
    Ort
    Braunfels
    Beiträge
    654

    Danke ... die Frage wäre nun wie ich am schlausten an die Werte hinter Datakomme? Wenn ich diesen Wert habe, dann könnte ich das hinten dran als Array parsen.
    Symcon 5 beta auf Symbox, 110+ HomeMatic Komponenten (Alle Funk - Rolladen, Licht, Schalter, Taster, KeyMatic, Fenster, Regensensor, WinMatic etc.), Davis Vantage Pro (via Meteobridge Nano), Sonos 1 // 3000+ Variablen // 2 WebFronts // iOS // Android clients / Google Home / 2 Repeater / Unifi / Fritzbox PBX

  5. #5
    Registriert seit
    Mar 2008
    Ort
    Ruesselsheim
    Beiträge
    3,761

    Hallo
    Probier mal das:
    PHP-Code:
    $wunsch 0;
        
    $old explode(",",$json);
        
    $newarray= array();
        foreach(
    $old as $new )
            {
            if (
    $new == false
                
    $new $wunsch;
            
    array_push($newarray,$new);       
            }

        
    $new implode(",",$newarray);
            
        
    print_r($newarray); 

  6. #6
    Registriert seit
    May 2012
    Ort
    Braunfels
    Beiträge
    654

    Was soll ich sagen ... D A N K E

    Geht wie eine eins.
    Symcon 5 beta auf Symbox, 110+ HomeMatic Komponenten (Alle Funk - Rolladen, Licht, Schalter, Taster, KeyMatic, Fenster, Regensensor, WinMatic etc.), Davis Vantage Pro (via Meteobridge Nano), Sonos 1 // 3000+ Variablen // 2 WebFronts // iOS // Android clients / Google Home / 2 Repeater / Unifi / Fritzbox PBX

  7. #7
    Registriert seit
    Oct 2011
    Ort
    Hattersheim (Hessen)
    Beiträge
    7,024

    Falls die Daten, die geliefert werden, immer unterschiedlich sein sollten, aber dennoch immer vermurkst durch mehere Kommas, kannst Du auch alternativ das JSON reparieren und dann auslesen. Dann hast Du zumindest immer den gleichen Code ohne das eventuell der Key des Arrays variiert.

    PHP-Code:
    $json preg_replace('/,+/'','$json);
    $data json_decode($json);
    $status $data->Status;
    var_dump($status); 

  8. #8
    Registriert seit
    May 2012
    Ort
    Braunfels
    Beiträge
    654

    Danke Fonzo ... wird auch probiert.
    Symcon 5 beta auf Symbox, 110+ HomeMatic Komponenten (Alle Funk - Rolladen, Licht, Schalter, Taster, KeyMatic, Fenster, Regensensor, WinMatic etc.), Davis Vantage Pro (via Meteobridge Nano), Sonos 1 // 3000+ Variablen // 2 WebFronts // iOS // Android clients / Google Home / 2 Repeater / Unifi / Fritzbox PBX

  9. #9
    Registriert seit
    Oct 2011
    Ort
    Hattersheim (Hessen)
    Beiträge
    7,024

    Zitat Zitat von BommelPommel Beitrag anzeigen
    ... wird auch probiert.
    Die Daten, die Du da als Antwort von dem Gerät bekommst sind einfach Murks, bzw. kein JSON.

    Wenn Du Data auslesen willst musst Du auch noch den Key korrigieren, da wird nämlich ein Leerzeichen mit übergeben als Antwort abgesehen von den vielen falschen Kommas.

    PHP-Code:
    $json preg_replace('/,+/'','$json);
    $json str_replace("Data ""Data"$json);
    $payload json_decode($json);
    $status $payload->Status;
    var_dump($status);
    $data $payload->Data;
    var_dump($data); 

Ähnliche Themen

  1. AC_GetAggregatedValues - wieder mal...
    Von Allgaeuer im Forum Skripte, PHP, SQL
    Antworten: 10
    Letzter Beitrag: 29.12.18, 14:17
  2. Openssl mal wieder
    Von hsgev im Forum Allgemeine Diskussion (2.x/3.x)
    Antworten: 8
    Letzter Beitrag: 11.10.14, 09:48
  3. Wasserzähler... mal wieder.
    Von Hagbard235 im Forum Haustechnik
    Antworten: 8
    Letzter Beitrag: 12.09.12, 14:01
  4. mal wieder Fußbodenheizung
    Von andyfis im Forum Haustechnik
    Antworten: 4
    Letzter Beitrag: 17.04.08, 07:27
  5. wieder mal FHT's
    Von Retiarius im Forum Ideen & Anregungen
    Antworten: 5
    Letzter Beitrag: 31.10.05, 17:50