Пингану тебя через полгода значит
:))) ну это базовый принцип - увы, общее решение под все случаи не делается и тебе надо уметь отвечать на архитектурные вопросы
например - будет ли польза, если считать, что as_json это одна из четырех возможностей as_json_int/as_json_array/as_json_object/as_json_string ?