Я колоссальный идиот.
Это работает .Я не выделил тестовый пример, и моя строка JSON была искажена.
Итак,
json J(json_string);
J["my_list"].get<std::vector<int>>()
работает работает.
В моем случае я проверяю, чтобы мои имена C ++ совпадали с ключами JSON, поэтому я могу просто использовать макрос:
#define EXTRACT(x) x = J[#x].get< decltype(x) >()
int foo;
std::vector<float> bar;
EXTRACT(foo);
EXTRACT(bar);
Мои извинения автору.