2016-12-11 5 views
1

Mein json Rückgabewert alsDrucken json Element separat

"name":"[\"nine\",\"tweleve\",\"four\"]" 

Wie kann ich neun tweleve und vier separat drucken.

i verwendet

$ time1 = json_decode ($ row [ 'Zeit']);

wobei $row['time'] das obige json zurückgibt.

Ich habe versucht,

<?php echo $time1->{'name'}; 
       ?> 

Aber es druckt wie

["nine","tweleve","four"] 

sogar

<?php echo $time1->{'name'}[0]; 
        ?> 

hilft nicht.

+0

Bitte definieren * "hilft nicht" * Was wird gedruckt? Ist es nicht das, was Sie erwartet haben? –

+0

Es wird wie ein String gedruckt, {'name'} [0]; ?> Nur drucken '[' ich will 'neun' dann –

Antwort

1

Das Problem ist, dass "name" kein JSON-Array ist, es ist eine JSON-Zeichenfolge. Daher müssen Sie JSON auch die Zeichenfolge "name" dekodieren.

$time1 = json_decode($row['time']); 
$time1name = json_decode($time1->{'name'}) 

und dann

<? php echo $time1name[0]; ?> 

"nine" gedruckt werden soll.


Wenn möglich, sollten Sie Ihre JSON korrekt formatiert werden, so dass es eine tatsächliche JSON-Array wie so ist:

"name": ["nine","tweleve","four"] 

Hinweis keine " s rund um die Array-Klammern ([, ]).

+0

vielen Dank, es hat geholfen –

0

Sie sollten daran denken, dass Ihr Browser nur HTML erkennt. Es weiß nicht, was Json ist? Daher empfiehlt es sich, Header wie folgt hinzuzufügen: header('Content-Type: application/json'); Dann sollten Sie zuerst Daten in JSON wie folgt kodieren: echo json_encode($results, JSON_PRETTY_PRINT); Denken Sie daran, die Lösung, die ich hier gebe offensichtlich für php> 5.4.

+0

Ich füge Daten in SQL-Tabelle über PHP durch Codierung wie folgt ein, $ time ['name'] = json_encode ($ this-> input-> post ('time ')); Ich benutze Code Ignitor –