2017-09-02 47 views
1

代碼:快車 - 添加JSON有效載荷,捲曲引起解析錯誤

const express = require('express') 
const bodyParser = require('body-parser') 

app = express() 
app.use(bodyParser.json()); 

app.post('/', function (req, res) 
{ 
    res.send("Ok") 
}) 

app.listen(7000) 

作品:

捲曲-X POST本地主機:7000/

失敗:

命令:捲曲-H 「內容類型:應用/ JSON」 -d { 「天」: 「星期五」}本地主機:7000/

錯誤:語法錯誤:在JSON意外標記d在位置1

有任何想法嗎?

分辨率:

的問題似乎是由於這樣的事實,我是在Windows這樣做。以下命令起作用。

curl -H "Content-Type: application/json" -d {"""day""":"""Friday"""}localhost:7000/ 

curl -H "Content-Type: application/json" -d {\"day\":\"Friday\"} localhost:7000/ 

curl -H "Content-Type: application/json" -d "{\"day\":\"Friday\"}" localhost:7000/ 
+0

的可能的複製[如何從終端/命令行POST,捲曲JSON數據來測試彈簧安置?](https://stackoverflow.com/questions/7172784/how-to-post-json-data-with-curl-from-terminal-commandline-to-test-spring-rest) – mscheker

回答

0

cURL命令與引號混淆(請參閱它如何認爲第一個字符是「d」?)。你需要用單引號括起來的JSON數據:

curl -H "Content-Type: application/json" -d '{"day":"Friday"}' localhost:7000/ 

你也可以逃脫引號:

curl -H "Content-Type: application/json" -d "{\"day\":\"Friday\"}" localhost:7000/ 
+0

謝謝。在我的Windows安裝程序中,第一個建議不起作用(我曾嘗試過),但第二個建議無效。雖然它確實需要外部報價。 – mgibson

+0

對不起,我很困惑。你能解決它嗎?是的,第二個需要用雙引號包裝**和**轉義內部雙引號。 – ishegg