Я прихожу в Java из PHP-фона и с удивлением вижу, что преобразование JSON в объекты настолько ограничено. Во всех уроках Джексона я наткнулся, похоже, что объект для чтения должен быть предварительно определен. Таким образом, если мои данные представлены, скажем, в формате JSON API, мне нужно написать шаблонный код для удаления всего, кроме части «данные», а затем каким-то образом преобразовать все строки в объекты один за другим.
Я очень скучаю по PHP json_decode
функция, который будет читать любой JSON и даст вам объект PHP для игры. Он также встраивает необходимую структуру в объект, добавляя массивы и подобъекты по мере необходимости. Конечно, я понимаю, что Java — это скомпилированный язык, но мне интересно, как это можно сделать проще.
Как язык со строгой типизацией, Java часто имеет меньше таких функциональных возможностей типа «просто дай мне», но это не значит, что их не существует. Четное Джексон может десериализовать JSON без предопределенной схемы, давая вам Maps
а также Lists
вместо доменных объектов.
Просто помните, что если вы работаете над «реальными» проектами, у вас есть множество преимуществ от определения схем. Они были придуманы не для того, чтобы раздражать вас, но чтобы убедиться, что вы можете доверять своим данным, находящимся в правильной форме (или узнать заранее, если это не так).
Других решений пока нет …