2017-10-20 56 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'来避免你的换行符 –

相关问题