我正在为节点js使用swagger文档,我的身体模型是
TransferTokenRequest:
required:
- amount
- currency
- to
properties:
amount:
description: "Number of amount to be transfer"
type: number
minimum: .00000001
maximum: 100000000当我在节点js中传递从0开始时,body参数中的number,则会出现以下错误。
400坏请求位置17处JSON中的意外编号
我在PostMan中通过下面的请求
{
"amount": 01
}当我向API发送请求时,我会得到以下错误响应。
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<title>Error</title>
</head>
<body>
<pre>SyntaxError: Unexpected number in JSON at position 17
<br> at JSON.parse (<anonymous>)
<br> at parse (/home/laxman/CODE/AKEO/LedgefarmNetworkAPi/node_modules/swagger-tools/node_modules/body-parser/lib/types/json.js:84:17)
<br> at /home/laxman/CODE/AKEO/LedgefarmNetworkAPi/node_modules/swagger-tools/node_modules/body-parser/lib/read.js:102:18
<br> at done (/home/laxman/CODE/AKEO/LedgefarmNetworkAPi/node_modules/swagger-tools/node_modules/raw-body/index.js:248:14)
<br> at IncomingMessage.onEnd (/home/laxman/CODE/AKEO/LedgefarmNetworkAPi/node_modules/swagger-tools/node_modules/raw-body/index.js:294:7)
<br> at Object.onceWrapper (events.js:313:30)
<br> at emitNone (events.js:111:20)
<br> at IncomingMessage.emit (events.js:208:7)
<br> at endReadableNT (_stream_readable.js:1064:12)
<br> at _combinedTickCallback (internal/process/next_tick.js:139:11)
<br> at process._tickDomainCallback (internal/process/next_tick.js:219:9)
</pre>
</body>
</html>发布于 2019-07-05 12:01:08
数字不能以无意义的0开头。您可以在JSON文档链接上查看它。因此,在传递之前,您应该在值中手动更正它。但是,如果不能手动更新值,然后使用REGEX,则可以更新JSON值。
这样传递JSON应该是无效的
{
"amount": 01
}因此,在传递JSON之前,可以将代码应用于:
var obj = JSON.parse(str.replace(/ 0+(?![\. }])/g, ' '));这将输出为
{amount: 1}https://stackoverflow.com/questions/56902330
复制相似问题