2017-10-20 5 views
0

JSONオブジェクトの形式でコンパイルするためにHackerEarth APIにコードを送信するエディタを作成しようとしています.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タグは少し心配しています。 Becuase MongoDBは "JSON文字列"も格納しません。プレーンJavaScriptオブジェクトは、ドライバによってBSONに解析されます。 JSONはここにありません。 –

答えて

1

あなたは主にJSONコンテナを悪用しています。 文字列は常に二重引用符で囲みます。 改行をエスケープする必要があります。二重引用符は逃げようとする。

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

深い知識または一部のJSON validatorにRFC 4627を使用してください。

+0

私はそれを1行に入れたくないので、同じ方法でAPIに渡したい@Stanislav Sokol – gurucharan

+0

@gurucharanあなたの改行はエンコードされます(おそらく '\ n') - 有効にするには二重引用符を使用する必要があります。バックスティックは有効な文字列区切り文字ではありません – Jamiec

+0

私は[JSON](http://json.org/)をよく読んでいます。改行は許されないので、あなたの改行を '\ n'でエスケープしなければならないことは明らかです –

関連する問題