2016-08-06 6 views
-1

ist das Array ich von einem Remote-API-Aufruf erhalten:Kann jemand erklären, warum dieses bestimmte PHP-Array mit json_encode nicht korrekt in Json codiert? Diese

Array ([49] => Array ([username] => Rocky [email] => [email protected]) [50] => Array ([username] => Ricky [email] => [email protected])) 

json_encode gibt mir dies:

"Array\n(\n [49] => Array\n (\n [username] => Rocky\n [email] => [email protected]\n)\n\n [50] => Array\n (\n [username] => Ricky\n [email] => [email protected]\n)\n\n)\n" 

ich json müssen, die remote als ein Objekt zugegriffen werden kann, aber diese Saite ist nicht Arbeiten.

ich diese Daten am Zugriff auf diese curl Anfrage mit:

<?php 

$post = [ 
    'api_key' => 'xxxxxxxxxxxxxxxxxxxxxxxxxx', 
    ]; 

$host = "http://xxxxxxxxxx.com/yardsale/get_clients.php"; 
    $ch = curl_init(); 
    curl_setopt($ch, CURLOPT_URL, $host); 
    curl_setopt($ch, CURLOPT_VERBOSE, 1); 
    curl_setopt($ch, CURLOPT_AUTOREFERER, false); 
    curl_setopt($ch, CURLOPT_REFERER, "http://www.xxxxxxxxx.com"); 
    curl_setopt($ch, CURLOPT_HTTP_VERSION, CURL_HTTP_VERSION_1_1); 
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); 
    curl_setopt($ch, CURLOPT_POSTFIELDS, $post); 
    curl_setopt($ch, CURLOPT_USERAGENT, 'Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; Trident/5.0)'); 
    $result = curl_exec($ch); 
    curl_close($ch); 


    echo $result; 

?> 
+4

können Sie auch den PHP, der diese Ausgabe produzieren würde? – Jeff

+3

Sie codieren buchstäblich eine Zeichenkette, daher erhalten Sie eine Zeichenkette als Ausgabe. Sie müssen das eigentliche Array codieren, nicht die String-Version (die wie 'print_r'-Ausgabe aussieht). Sie sollten JSON oder vielleicht XML von der API erhalten, nicht die Zeichenfolge, die Sie oben eingefügt haben. –

+0

https://eval.in/618944. Es funktioniert mit Ihren Daten. Überprüfe, was andere oben gesagt haben –

Antwort

1

Ich denke, es ein Problem der Array ist, können Sie das Array-Format etwas wie das ändern: -

<?php 
$arr=array('49' => array('username'=> 'rocky', 'email'=> '[email protected]'),'50' => array('username'=> 'mohit', 'email'=> '[email protected]')); 
$test_arr= json_encode($arr); 
echo $test_arr; 
?> 

Und die Ausgabe des obigen JSON:

{"49":{"username":"rocky","email":"[email protected]"},"50":{"username":"mohit","email":"[email protected]"}}