Проблема с декодированием JSON от store на стороне сервера
ExtJS 4.0.2a, PHP 5.3.6, LAMP
При использовании фильтрации стореджа на стороне сервера (метод filter()) сценарий отсылает в поле JSON кодированные данные фильтрации. Выглядят они примерно как: [{"property":"code_1","value":1},{"property":"code_ 2","value":7},{"property":"code_3","value":4}] Вопрос. Как разобрать такое на стороне PHP ? Не получается достучаться к свойствам value ни при декодировании в объект, ни в массив. В примерах к json_decode используется либо совсем тривиальный случай, либо когда в JSON массив находится внутри уже в виде значения... |
var_export(json_decode(…))Что выводит? |
var_export(json_decode($_GET["filter"], true));
Выводит: array ( 0 => array ( 'property' => 'code_1', 'value' => 1, ), 1 => array ( 'property' => 'code_2', 'value' => 7, ), 2 => array ( 'property' => 'code_3', 'value' => 4, ), ) Кстати обнаружил не то баг, не то фичу удаленной фильтрации в ExtJS 4: http://www.sencha.com/forum/showthre...765#post639765 Вкратце: если к созданному стореджу несколько раз применять вызов его метода filter(), то старый фильтр не затирается, а "добавляется" к новому. Метод clearFilter() лечит проблему, но порождает лишний нефильтрованный запрос, что вкупе с большим возможным количеством нефильтрованных данных может ввести в ступор приложение... |
$data = json_decode($_GET["filter"], true); echo $data[0]['value']Должно работать. |
Работает, пасиба.
|
Часовой пояс GMT +3, время: 20:38. |