2015-10-24 29 views
1

我想这个JSON发布到API发布OBJECTID使用邮递员在邮递员

{ 
"order" : [{ "mealId": 562b2649b2e70464f113c04d, "quantity": 4}], 
"service_id" : 562b2649b2e70464f113c04d, 
"dest" : "Allabama", 
"active": false 
} 

,但我不断收到此错误

SyntaxError: Unexpected token b 
    at Object.parse (native) 
    at parse (C:\nodeprojects\foodDelivery\node_modules\body-parser\lib\types\json.js:88:17) 
    at C:\nodeprojects\foodDelivery\node_modules\body-parser\lib\read.js:108:18 
    at invokeCallback (C:\nodeprojects\foodDelivery\node_modules\body-parser\node_modules\raw-body\index.js:262:16) 
    at done (C:\nodeprojects\foodDelivery\node_modules\body-parser\node_modules\raw-body\index.js:251:7) 
    at IncomingMessage.onEnd (C:\nodeprojects\foodDelivery\node_modules\body-parser\node_modules\raw-body\index.js:308:7) 
    at IncomingMessage.emit (events.js:104:17) 
    at _stream_readable.js:908:16 
    at process._tickCallback (node.js:355:11)

它的一个API的NodeJS与猫鼬。 这是JSON对象

var mongoose = require('mongoose'); 
var OrdersSchema = new mongoose.Schema({ 
order : [{ mealId: mongoose.Schema.Types.ObjectId, quantity: Number}], 
service_id : mongoose.Schema.Types.ObjectId, 
dest : String, 
orderTime : {type:Date, default:Date.now}, 
completeTime : {type:Date, default:Date.now}, 
active: Boolean, 
}); 

架构因此,在短期的问题是,当我尝试通过的ObjectId,它停止“562”后,阅读和看到的“B”作为一个非法字符。

回答

0

您必须引用字符串:

{ 
"order" : [{ "mealId": "562b2649b2e70464f113c04d", "quantity": 4}], 
"service_id" : "562b2649b2e70464f113c04d", 
"dest" : "Allabama", 
"active": false 
} 
+0

当我尝试我得到一个“意外的字符串”错误,因为它期望ObjectId不是字符串 – digiwebguy

+0

谢谢!第一次尝试时,我曾在意外之后意外地忽略了一个逗号。将它们放在引号中修复它。再次感谢! – digiwebguy

+0

我在ObjectId字段中获取{000000000000000000000000},当我从postman传递像这样的值....我使用C#驱动程序..任何解决方案? – Malar

0

收到_id对象作为一个字符串,而不是作为的ObjectId, 当你得到这个ID创建新mongo.driver OBJECTID

public async Task<IHttpActionResult> PostExample(string idinstring) 
{ 
     ObjectId d=new ObjectId(idinstring); 
    }