Json 在curl请求中传递布尔值
我的目标是在我的用户模式中有一个属性isAdmin,它是一个布尔值,默认为false,可以在CURL请求中发送一个真值Json 在curl请求中传递布尔值,json,bash,curl,Json,Bash,Curl,我的目标是在我的用户模式中有一个属性isAdmin,它是一个布尔值,默认为false,可以在CURL请求中发送一个真值 API="http://localhost:4741" URL_PATH="/sign-up" EMAIL="a2@admin.com" PASSWORD="test" ADMIN="True" curl "${API}${URL_PATH}" \ --include \ --request POST \ --header "Content-Type: appli
API="http://localhost:4741"
URL_PATH="/sign-up"
EMAIL="a2@admin.com"
PASSWORD="test"
ADMIN="True"
curl "${API}${URL_PATH}" \
--include \
--request POST \
--header "Content-Type: application/json" \
--data '{
"credentials": {
"email": "'"${EMAIL}"'",
"isAdmin": "'"${ADMIN}"'",
"password": "'"${PASSWORD}"'",
"password_confirmation": "'"${PASSWORD}"'"
}
}'
我从我的模式中的以下内容开始:
isAdmin: {
type: Boolean,
default: false,
required: true
}
并且有一个有效的CURL请求,isAdmin将按预期返回false
API="http://localhost:4741"
URL_PATH="/sign-up"
EMAIL="a2@admin.com"
PASSWORD="test"
curl "${API}${URL_PATH}" \
--include \
--request POST \
--header "Content-Type: application/json" \
--data '{
"credentials": {
"email": "'"${EMAIL}"'",
"password": "'"${PASSWORD}"'",
"password_confirmation": "'"${PASSWORD}"'"
}
}'
然后,我尝试删除默认值:
isAdmin: {
type: Boolean,
required: true
}
…并尝试在CURL请求中传递T或F,但它不起作用。错误表明isAdmin是必需的。不确定我的卷发请求有什么问题
API="http://localhost:4741"
URL_PATH="/sign-up"
EMAIL="a2@admin.com"
PASSWORD="test"
ADMIN="True"
curl "${API}${URL_PATH}" \
--include \
--request POST \
--header "Content-Type: application/json" \
--data '{
"credentials": {
"email": "'"${EMAIL}"'",
"isAdmin": "'"${ADMIN}"'",
"password": "'"${PASSWORD}"'",
"password_confirmation": "'"${PASSWORD}"'"
}
}'
你知道我做错了什么吗?和/或如何使默认值为false并使用true isAdmin属性发布新用户?提前感谢您的建议
澄清:使用Mongoose和ExpressAPI。由于您将值括在双引号中,因此它似乎被视为字符串,而不是布尔值。试试这个:
ADMIN=true # may be it is safer to use all lowercase for true/false
curl "${API}${URL_PATH}" \
--include \
--request POST \
--header "Content-Type: application/json" \
--data '{
"credentials": {
"email": "'"${EMAIL}"'",
"isAdmin": '${ADMIN}',
"password": "'"${PASSWORD}"'",
"password_confirmation": "'"${PASSWORD}"'"
}
}'
这是什么?一个bash脚本?@NeilLunn是一个shell脚本我想服务器会解析JSON。因此,如果您只是通过最喜欢的JSON解析器提示键入JavaScript对象,打开浏览器控制台并使用JSON.stringify,那么字符串输出是什么样子的?然后当然要让你的字符串看起来完全一样。我可以建议使用一个命令行JSON工具来生成正确的JSON吗?只要有人在电子邮件地址或密码中添加引号,您的脚本就会被破坏。这解决了问题吗?你能以其他方式解决你的问题吗?