首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >当传递开始时,从0开始,得到错误400坏请求(SyntaxError: JSON中位于17位置的意外数字)

当传递开始时,从0开始,得到错误400坏请求(SyntaxError: JSON中位于17位置的意外数字)
EN

Stack Overflow用户
提问于 2019-07-05 11:36:47
回答 1查看 236关注 0票数 0

我正在为节点js使用swagger文档,我的身体模型是

代码语言:javascript
复制
 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中通过下面的请求

代码语言:javascript
复制
{
    "amount": 01
}

当我向API发送请求时,我会得到以下错误响应。

代码语言:javascript
复制
<!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> &nbsp; &nbsp;at JSON.parse (&lt;anonymous&gt;)
            <br> &nbsp; &nbsp;at parse (/home/laxman/CODE/AKEO/LedgefarmNetworkAPi/node_modules/swagger-tools/node_modules/body-parser/lib/types/json.js:84:17)
            <br> &nbsp; &nbsp;at /home/laxman/CODE/AKEO/LedgefarmNetworkAPi/node_modules/swagger-tools/node_modules/body-parser/lib/read.js:102:18
            <br> &nbsp; &nbsp;at done (/home/laxman/CODE/AKEO/LedgefarmNetworkAPi/node_modules/swagger-tools/node_modules/raw-body/index.js:248:14)
            <br> &nbsp; &nbsp;at IncomingMessage.onEnd (/home/laxman/CODE/AKEO/LedgefarmNetworkAPi/node_modules/swagger-tools/node_modules/raw-body/index.js:294:7)
            <br> &nbsp; &nbsp;at Object.onceWrapper (events.js:313:30)
            <br> &nbsp; &nbsp;at emitNone (events.js:111:20)
            <br> &nbsp; &nbsp;at IncomingMessage.emit (events.js:208:7)
            <br> &nbsp; &nbsp;at endReadableNT (_stream_readable.js:1064:12)
            <br> &nbsp; &nbsp;at _combinedTickCallback (internal/process/next_tick.js:139:11)
            <br> &nbsp; &nbsp;at process._tickDomainCallback (internal/process/next_tick.js:219:9)
        </pre>
    </body>
</html>
EN

回答 1

Stack Overflow用户

发布于 2019-07-05 12:01:08

数字不能以无意义的0开头。您可以在JSON文档链接上查看它。因此,在传递之前,您应该在值中手动更正它。但是,如果不能手动更新值,然后使用REGEX,则可以更新JSON值。

这样传递JSON应该是无效的

代码语言:javascript
复制
{
  "amount": 01
}

因此,在传递JSON之前,可以将代码应用于:

代码语言:javascript
复制
var obj = JSON.parse(str.replace(/ 0+(?![\. }])/g, ' '));

这将输出为

代码语言:javascript
复制
{amount: 1}
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56902330

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档