Serverless invoke local data type problem

When I run this local invoke, in my NodeJS lambda the payload comes as an object instead of string

serverless invoke local -f MyfunctionName --data '{ "data": "hello world" }'

Is there a reason for this? How can I pass this json payload as a string?

Have you tried escaping?
'"{ \"data\": \"hello world\" }"'
or also try saving this^ in a file and run
serverless invoke local -f MyfunctionName -p ./path-to-file

Hope it could help, I havent tried tho haha