2017-10-20 58 views
0

我想創建一個編輯器,我將代碼發送到HackerEarth API進行JSON對象形式的編譯。我使用PostMan來檢查API 。 JSON對象如下:我如何將代碼片段作爲json對象中的多行字符串傳遞

{ 
"code":`#include<stdio.h> 
     int main() 
     { 
     printf("hello world"); 
     }`, 
"language":"C" 
} 

我得到的錯誤如下:

SyntaxError: Unexpected token 
in JSON at position 29 
at JSON.parse (<anonymous>) 
at parse (C:\Users\GURU\Documents\Project-master\node_modules\body-parser\lib\types\json.js:89:19) 
at C:\Users\GURU\Documents\Project-master\node_modules\body-parser\lib\read.js:121:18 
at invokeCallback (C:\Users\GURU\Documents\Project-master\node_modules\raw-body\index.js:224:16) 
at done (C:\Users\GURU\Documents\Project-master\node_modules\raw-body\index.js:213:7) 
at IncomingMessage.onEnd (C:\Users\GURU\Documents\Project-master\node_modules\raw-body\index.js:273:7) 
at emitNone (events.js:105:13) 
at IncomingMessage.emit (events.js:207:7) 
at endReadableNT (_stream_readable.js:1047:12) 
at _combinedTickCallback (internal/process/next_tick.js:102:11) 
at process._tickCallback (internal/process/next_tick.js:161:9) 

請幫助! 在此先感謝!

+0

那不是JSON,而是一個JavaScript對象。如果你改爲'JSON.stringify(obj)',那麼它就變成了JSON。然而,mongodb標籤有點令人擔憂,因爲「你真的想要做什麼?」。因爲MongoDB不存儲「JSON字符串」。普通的JavaScript對象由驅動程序解析爲BSON。這裏沒有JSON。 –

回答

1

您主要使用了JSON容器。 字符串總是加引號。 Newline應該逃脫。雙引號需要逃脫。

{ 
"code":"#include <stdio.h> int main() { printf(\"hello world\"); }", 
"language":"C" 
} 

使用RFC 4627獲得更深的知識或某些JSON validator

+0

我不希望它在一行中,我想以同樣的方式將它傳遞給API @Stanislav Sokol – gurucharan

+0

@gurucharan你的新行將被編碼(可能是'\ n'),並且這個答案說 - 您必須使用雙引號使其有效。反引號不是有效的字符串分隔符 – Jamiec

+0

我高度推薦了[JSON](http://json.org/)閱讀。很明顯,換行符是不允許的,所以必須用'\ n'來避免你的換行符 –

相關問題