Почему принимается как массив, а не как объект?
Я в Symfony не специалист, конечно, но судя по array=true в DocBlock - указано, что json_decode должен возвращать массив, а не объект.
А что вы сделали, что бы он был объектом ?
Массив идет пара + значение. PHP может преобразовывать типы данных. 
Но массив это массив, а объект это объект. В цикле вы только перебираете полученное. 
Вы либо создадите объект и наполните его полученным массивом. Либо более изящное решение вам подскажут.