Node.js 当传递start with 0 number get error 400错误请求时(SyntaxError:JSON中位置17处的意外数字)
我正在为NodeJSAPI使用swagger文档 我的身体模型是Node.js 当传递start with 0 number get error 400错误请求时(SyntaxError:JSON中位置17处的意外数字),node.js,api,swagger,body-parser,Node.js,Api,Swagger,Body Parser,我正在为NodeJSAPI使用swagger文档 我的身体模型是 TransferTokenRequest: required: - amount - currency - to properties: amount: description: "Number of amount to be transfer" type: number minimum: .00000001
TransferTokenRequest:
required:
- amount
- currency
- to
properties:
amount:
description: "Number of amount to be transfer"
type: number
minimum: .00000001
maximum: 100000000
当我在节点js API中传递以0开头的、body参数中的数字时,我得到了下面的错误
400错误请求位置17处JSON中的意外数字
我在邮递员处传递下面的请求
{
"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>
错误
SyntaxError:JSON中位置17处的意外数字
在JSON.parse(匿名)
解析时(/home/laxman/CODE/AKEO/LedgefarmNetworkAPi/node_modules/swagger tools/node_modules/body parser/lib/types/json.js:84:17)
at/home/laxman/CODE/AKEO/LedgefarmNetworkAPi/node_modules/swagger tools/node_modules/body parser/lib/read.js:102:18
完成时(/home/laxman/CODE/AKEO/LedgefarmNetworkAPi/node_modules/swagger tools/node_modules/raw body/index.js:248:14)
在IncomingMessage.onEnd(/home/laxman/CODE/AKEO/LedgefarmNetworkAPi/node_modules/swagger tools/node_modules/raw body/index.js:294:7)
在Object.onceWrapper(events.js:313:30)
在emitNone(events.js:111:20)
在IncomingMessage.emit(events.js:208:7)
在endReadableNT(_stream_readable.js:1064:12)
at _combinedTickCallback(内部/流程/下一步_tick.js:139:11)
在进程中。_tickDomainCallback(internal/process/next_tick.js:219:9)
数字不能以无意义的0开头。你可以查一下。因此,在传递之前,应该在值中手动更正它。但如果不能手动更新值,那么可以使用REGEX更新JSON值
这对于传递类似JSON的消息应该是无效的
var obj = JSON.parse(str.replace(/ 0+(?![\. }])/g, ' '));
因此,在传递JSON之前,您可以将代码应用为:
{amount: 1}
这将输出为
在这里显示如何传递JSON的代码。
{amount: 1}