【问题标题】:Curl - POST request with a nested JSON array?Curl - 带有嵌套 JSON 数组的 POST 请求?
【发布时间】:2020-10-05 23:33:03
【问题描述】:

我为此使用 TypeScript 和 Express,以及用于 POST 请求的 Curl。每次我尝试使用 Curl 使用 POST 请求时,它总是返回 undefined

函数listOfSplashNumbers是一个函数,它接收一个包含9个数组和一个三元组的数组。

类似:"visualisation": '[[5535,2145],[0021,8875],[2135,8774],[2135,8774],[2135,8774],[2135,8774],[2135,8774],[2135,8774],[2135,8774],[2135,8774, 0854]]'

const app = express();
app.use(express.json());
app.post("/visualize", (req, res) => {
  
  const visualisation = req.body.visualisation;
  console.log(visualisation); //Returns undefined
  const splash = listOfSplashNumbers(visualisation);

});

我的 Curl 命令如下所示:

curl http://localhost:5000/visualize \ --request POST \ --header "Content-Type: application/json" \ --data '{"visualisation":[[5535,2145],[0021,8875],[2135,8774],[2135,8774],[2135,8774],[2135,8774],[2135,8774],[2135,8774],[2135,8774],[2135,8774, 0854]]}'; 

【问题讨论】:

  • 我得到“语法错误:JSON 中位置 x 的意外数字”,直接指向 0021。一旦我删除了前导零,它就可以正常工作。另外,您正在运行的命令中是否有这些反斜杠?还是多行脚本?
  • 更改前导零,使错误不同:SyntaxError: Unexpected token ' in JSON at position 0 反斜杠确实在命令中。
  • 您是在 Windows 上运行它吗? stackoverflow.com/questions/7172784/…

标签: javascript typescript express curl


【解决方案1】:

问题在于您的正文 json,00210854 引起了问题,因为以 0 开头的数字是八进制数而不是整数,要么将它们作为字符串传递,要么删除尾随的 0

如果你尝试跟随 curl 它将起作用

curl --location --request POST 'http://localhost:5000/visualize' \
--header 'Content-Type: application/json' \
--data-raw '{"visualisation":[[5535,2145],[21,8875],[2135,8774],[2135,8774],[2135,8774],[2135,8774],[2135,8774],[2135,8774],[2135,8774],[2135,877,854]]}'

您可以阅读有关它的更多信息 Why is JSON invalid if an integer begins with a leading zero?

【讨论】:

    猜你喜欢
    • 2018-03-13
    • 2019-10-27
    • 2016-06-11
    • 2018-11-09
    • 2018-02-18
    • 1970-01-01
    • 1970-01-01
    • 2021-09-18
    • 2015-09-30
    相关资源
    最近更新 更多