Я предполагаю, что это потому, что ваши данные (полезная нагрузка) не указаны правильно:
>echo {"username":"TheUserName"}
{username:TheUserName}
Обратите внимание, что двойные кавычки исчезли после оболочка обработала их.
И AFAIK JSON не позволяет использовать строки без кавычек.
Чтобы исправить это, просто заключите данные в одинарные кавычки, например:
>echo '{"username":"TheUserName"}'
{"username":"TheUserName"}
Если вы хотите, чтобы расширение оболочки (подстановка переменных) работало внутри ваших данных, используйте двойные кавычки и избегайте внутренних кавычек:
>echo "{\"username\":\"$username\"}"
{"username":"myuser"}
Обратите внимание, что есть и другие способы правильно процитировать аргументы вашей оболочки (я думаю, на этом сайте уже есть много хороших ответов по этому поводу). И вы также можете вместо этого поместить свои данные в файл, если хотите.