2013-11-07 3 views
0

Я пытаюсь разобрать следующий json в php:Анализировать JSON в PHP отправлено из JavaScript

[{"id":"firstname","optionValue":""},{"id":"lastname","optionValue":""},{"id":"","optionValue":"Submit"}] 

Im получение строки посланной ко мне с get request

Это то, что я получил до сих пор:

if(isset($_GET['data'])) { 

    $json_a = json_decode($_GET['data'], true); 

    foreach ($json_a as $a => $b) { 
     echo $a; 
    } 
} 

Однако echo $a; ничего не выводит.

Любые идеи?

+0

Как вы посылаете его? Вы проверили запрос? Вы убедились, что введен оператор 'if'? Есть ошибки? – Ryan

+0

То, как у вас есть это прямо сейчас, вы должны видеть выводимые индексы. $ b должен содержать данные «lastname» и «optionValue». – user2959229

+0

Я хочу получить первое имя -> значение lastname -> значение – Alosyius

ответ

2

Прежде всего, убедитесь, что строка JSON декодирована правильно, выполнив команду var_dump($json_a);. Если JSON недействителен, json_decode() вернет NULL, и вы не сможете получить его.

Если вы можете подтвердить, что json_decode() возвращает массив, содержащий требуемую информацию, продолжайте читать.

У вас есть следующие в коде:

foreach ($json_a as $a => $b) { 
    echo $a; 
} 

Это просто распечатать ключи: 0, 1, 2. Вместо этого вы хотите использовать значение. Для того, чтобы цикл должен выглядеть следующим образом:

foreach ($json_a as $value) { 
    echo $value['id'].PHP_EOL; 
} 

Это теперь будет печатать:

firstname 
lastname 

Demo!

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