El asunto es que usas esto:
Y según la firma de la función:
Cita: mixed json_decode ( string $json [, bool $assoc = false [, int $depth = 512 [, int $options = 0 ]]] )
Y si
lees el manual:
Cita: assoc
Cuando es TRUE, los object devueltos serán convertidos a array asociativos.
Eso del lado del cliente es correcto, ¿pero tu problema es del lado del servicio o no?
Es justo ahí dónde está el problema, ¿cómo es que lees los datos de entrada?