Я не совсем уверен, что нужно, чтобы действие вернуло json.
Я уверен, что есть более чем один способ снять шкуру с этого кота, но я не уверен, что именно требуется.
Достаточно ли просто $this->render(array('json' => compact('data')); ?
Нужно ли мне добавлять маршрут, указывающий его json?
Нужно ли мне также добавлять тип мультимедиа application/json?
Нужно ли мне также добавлять макет по умолчанию default.json.php?
Нужно ли мне также добавлять представление action.json.php?
Примечания. Я хочу, чтобы любой произвольный URL-адрес: www.mysite.com/Controller/Action всегда возвращал json.
Я бы предпочел иметь возможность указывать тип возвращаемого значения ТОЛЬКО в моем действии (т. е. тип рендеринга).