JSON decode in variable zu schreiben

Hallo
Kann mir jemand hiermit weiterhelfen:
Dies hatte immer funktioniert:

var_dump(json_decode($content1, true));
$info1 = json_decode($content1, True);
SetValueInteger(45355, $info->batteries->capacity->full);

Die neue ausgabe ist folgendes

array(2) {
  ["batteries"]=>
  array(1) {
    [0]=>
    array(6) {
      ["id"]=>
      int(0)
      ["charge"]=>
      int(39)
      ["voltage"]=>
      int(17623)
      ["current"]=>
      int(-84)
      ["temperature"]=>
      int(257)
      ["capacity"]=>
      array(2) {
        ["full"]=>
        int(1200)
        ["remaining"]=>
        int(468)
      }
    }
  }
  ["successful"]=>
  bool(true)
}

Das ganze hat sich jetzt so verändert dass dies hinzu gekommen ist

array(1) {
[0]=>

Jetz bekomme ich immer fogende Fehler:

Notice: Undefined property: stdClass::$batteries in C:\IP-Symcon\scripts\53117.ips.php on line 47

Notice: Trying to get property ‚capacity‘ of non-object in C:\IP-Symcon\scripts\53117.ips.php on line 47

Notice: Trying to get property ‚full‘ of non-object in C:\IP-Symcon\scripts\53117.ips.php on line 47

Kann mir jemand bitte erklären wie ich es anstelle wieder den Wert zu bekommen

Vielen Dank


$info->batteries[0]->capacity->full

Wenn Du das true weglässt Du willst ja als Standard Objekt zugreifen. Wenn Du true setzt ist das ein Array dann muss das


$info['batteries'][0]['capacity']['full']

lauten.

Das kann noch nie funktioniert haben.
Wenn du bei json_decode im zweiten Parameter true angibst, wird das ein Array und kein Objekt.
Also lass das true weg.

var_dump(json_decode($content1));
$info = json_decode($content1);
SetValueInteger(45355, $info->batteries[0]->capacity->full);

Oder als Array:

var_dump(json_decode($content1, true));
$info = json_decode($content1, true);
SetValueInteger(45355, $info['batteries'][0]['capacity']['full']);

Michael

$info1 muss dann logischerweise $info heißen, sonnst kannst Du ja nicht mit $info auf den array zugreifen.

Copy und Paste Fehler aus seinen Code :smiley:
Das hier gibt es aber auch nicht ->[0]
Michael

Super Vielen Dank durch ausprobieren hatte ich noch das true drin und auch ein fehler bei der variabel info1

Vielen Dank an euch

Gruss,