Можно ли в C# привести JSON в объект, но при этом не создавая его заранее?
Нет, не сможете, т.к. object не содержит в себе таких полей. Несмотря на то, что полученный обьект по факту эти поля содержит, при упаковке подобная конструкция выдаст ошибку компиляции. Выхода два - использовать Json.Net, который десериализует все в свои jobject, которые, по сути - словари, или же использовать DLR, но, как по мне - лучше повеситься, чем юзать такую медленную тему.
JSON -- это просто текст. В него вы сможете записать что угодно.
Если все нужные поля будут в наличии, то и десериализовать потом сможете.
Ответ -- да.