Ну вопрос не новый:
https://stackoverflow.com/questions/11752705/does-stdstring-have-a-null-terminator
Но как-то мнения расходятся.
std::span messageSpan(reinterpret_cast<uint8_t*>(jsonText.data()), jsonText.size() + 1);
Так могу я написать и гарантировать что не вылезу за пределы памяти, которые контролирует строка std::string jsonText?
GPT говорит что начиная с C++17 стандарт гарантирует дополнительный байт 0 в самом конце и можно на это опираться.