2013-11-21 3 views
1

У меня возникают проблемы с расшифровкой из php json, созданного с помощью javascript JSON.stringfy. Возможно, проблема в том, что объект имеет массивы. JSON и ядро ​​являются:Ошибка декодирования javascript json из php

$jsonString = "{"tabLabels":["tab1","tab2","tab3","tab4","tab5"],"tabBgs":["21","2","3","0","4"],"tabPublico":[0,0,1,1,0],"fuente":"2","size":"17px"}"; 

$jsonObj = json_decode($jsonString); 

echo $jsonObj->obj; 
$tabs = $jsonObj->tabPublico 
for ($i=0;$i<strlen($tabs);$i++) 
{ 
    echo $tabs[i]; 
} 

В «эхо» ничего не показывают.

Благодарим за помощь. Оскар.

+0

Это ваш код? Если это так, ваша строка JSON плохо экранирована. – Florent

+0

@Florent, его JSON хорош. –

+0

@ShankarDamodaran Вы знаете, что я имею в виду (см. Ваш ответ). – Florent

ответ

1

Это были ваши ошибки.

  • заключите $jsonString с одной цитатой
  • Вы пропустили точку с запятой ; на 6-й строке.
  • Вы используете strlen() вместо count().

Модифицированный код.

<?php 
$jsonString = '{"tabLabels":["tab1","tab2","tab3","tab4","tab5"],"tabBgs":["21","2","3","0","4"],"tabPublico":[0,0,1,1,0],"fuente":"2","size":"17px"}'; 

$jsonObj = json_decode($jsonString); 
$tabs = $jsonObj->tabPublico; 
foreach($tabs as $k=>$v) 
{ 
echo $v; 
} 

ВЫВОД:

00110 
+0

Любая причина для downvote? –

+0

Спасибо за ответы Шанкар и Дипу. Я упростил здесь свой код, чтобы сосредоточиться в проблеме, и у меня было несколько ошибок, jsonString считывается из sql, это не фиксированный локальный var, как пример, тогда у меня нет ошибок котировок и точек с запятой. Но ваши ответы мне очень помогли, у меня был неправильный цикл, и у меня было неправильное эхо, которое испортило аут. Большое спасибо! – Oscardrbcn

+0

@Oscardrbcn, Рад, что у вас это работает. Счастливое кодирование!. –

1

Попробуйте как this.You JSON сильно бежал и для массива вы должны использовать count(), чтобы найти длину массива в цикле через.

$jsonString = '{"tabLabels":["tab1","tab2","tab3","tab4","tab5"],"tabBgs":["21","2","3","0","4"],"tabPublico":[0,0,1,1,0],"fuente":"2","size":"17px"}'; 
$jsonObj = json_decode($jsonString); 
$tabs = $jsonObj->tabPublico; 
for($i=0;$i<count($tabs);$i++) 
{ 
    echo $tabs[$i]; 
} 
1
$jsonString = '{"tabLabels":["tab1","tab2","tab3","tab4","tab5"],"tabBgs":["21","2","3","0","4"],"tabPublico":[0,0,1,1,0],"fuente":"2","size":"17px"}' 

проход JSON строку под одинарные кавычки.

Смежные вопросы