json_decode

wachteldonk

Erfahrenes Mitglied
Hallo,ich habe daten per json_encode evrschlüsselt und dann wieder decodiert und erhalte das

stdClass Object
(
[iv] => Jd%B4%B6u%92%AC_%CE%18%FD%16%C4%25%04%DA%E6%14O%90%80%D6aH%16%8E%87%8A%A9%97%92%93
[cdata] => i4%FD%FE%95%CB%DEPj%2BI%05%A1d%FF6%A2%F4%08%29a%8B%B8%5D%CC%91%7F%9EgL%17%1F%FE%F9%AC%E0%19%D6B%17%1B%22%DD%17%D0%DD%0E%164q%F2%0C%94%1E9%40%3C%88xV%14%2B%9F%144%8Ax%E8%89o%91%FC%5E%9A%EA%CE%E2%15%ED%09%22%F4%06%F4%60%F3%2B%A6%3E%B3%94%05%BF%0E%19%E2%AB%B2l%EF%21%B4%CDQ%10%CF%1C%28%93%0C%7E%93%A9%96o%99%00%15%91%C3%28%2F%05%9B%BC%FD%B8%FC%EDP%CE%9F%BAn+9%90%BE%8C%945%8Dp%F6-%D3g%D2a_%E5lD%AA%1F2%A3X%E3%88%14%C2%F1b%9B%AA%3B%FA%EB%FB%AAy%9F%85%9A%B5%DA%92%1C%AFw%E3y%23%F8a%14%8C%B0
)


Wie kann ich auf die Werte zugreifen?

ICh habe versucht mit

$d2->{'iv'};
$d2['iv'];
$d2->iv;

Ich komme aber an die Daten nicht ran. Was mache ich falsch? Wie komme ich an die einzelnen Werte ?
 
Kann man fragen, was das für ein Datentyp war, bevor du es verschlüsselt hast?
 
Zuletzt bearbeitet:
Arrays. Das waren alles Arrays und die wurden dann verschlüsselt und in ein json gepackt und per socket übertragen
 
ist es aber:)

Das was ich kriege als json sieht so aus

{"iv":"9u%E1c%0B%3C%8B%09%03%A1kC%97%29%CF6%C3%E9%F33%1Cy%0F%A0%0A%B8%9Fq7%22%A7%D4","cdata":"%95NFh%3D%7Fb%22%0Ax%A6%87qT%AB%B8%EDA%9Eo%87%00%DDc%CD%F9%94%AC%CEVaBB%E6J%C4%0D%7Ea%A4%CC%EEq%0E%99.2%A2r%85%C8F%2A%C1FG%AE%84R%25%97%D4%97D%C4%1C%86_%25%E6%2F%F5N%A8%B9%10%27%A7%AA%9E%D2%B8Cr%99%24R%E3b9%9Fz2%F4%C0%B4O%C1%CC8%BAJF%F7%D9ie%E4%AF%C4%D6o%AB%A7%BF4%13%AD%86%ED%C3S%FE%C9%1F%0C%5D%B8%8E%94%1D%BB%ED%D1%E5%5C%C7%DC%5E%9D%24%13%E5%3A%A5y%8D%29%92%C3%B6%91%BB%B0I%7C%DB%9C%A8%F0%D8T%FB%3A%8C%B0s%99%7C%FB%8A%2F%18%3F%99%A7%F8%FER%F8c%AE%AB%9C%0D%E5%8C%5E%96"}
 
Aber warum steht denn da in der ersten Zeile stdClass Object? Das passt überhaupt nicht. Aber letztendlich müsstest du, wenn du den Wert, den json_encode() kodiert hat, mit json_decode() dekodieren.
 
genau das habe ich gemacht. der übertragungswert ist der s.o.

das decodiere ich wie folgt
PHP:
		if (!$fp) {
    		echo "$errstr ($errno)<br />\n";
			exit;
			} 
		else {
    		while (!feof($fp)) {
        		$d .=  fgets($fp, 4096);
    			}
    		fclose($fp);
			}
		$d2 = json_decode($d);

echo $d."<br><br>";
echo "<pre>";
print_r($d2);
echo "</pre>";
echo "<br><br>";


		$iv 	= $d2->{'iv'};
		$cdata 	= $d2->{'cdata'};
		
		echo "<br>";
		echo "CDATA: ".$d["cdata"]."<br>";
		echo "IV: ".$d["iv"]."<br><br>";
 
Zuletzt bearbeitet von einem Moderator:
Aber jetzt wiedersprichst du dir: du sagst, dass es sich bei den Daten um ein Array handelt, rufst aber Wert wie Methoden und Eigenschaften eines Objektes auf.

PHP:
// Aufruf einer Eigenschaft eines Objektes
$object->attribut;

// Aufruf eines Arrays
$array['value'];
 
Ja, das war eines der vielen Versuche auf die daten zuzugreifen. ich hatte ja geschrieben das ich verschiedene varianten ausprobiert habe

sie erste Mails

siehe das

$d2->{'iv'};
$d2['iv'];
$d2->iv;


##edith1##

Den ersten Versuch hatte ich aus diesem 2. Beispiel

http://php.net/manual/de/function.json-decode.php

aber geht auch nicht

##edith2##

Habe glaube ich die Lösun gefunden. Man kann json_decode mit einem zusätzlichen Parameter zur rückgabe eines array zwingen
 
Zuletzt bearbeitet von einem Moderator:
Zurück