2015-10-24 1 views
1

Je suis en train de poster cette JSON à une API utilisant postieraffichage objectId dans postier

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

mais je continue à obtenir cette erreur

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)

est un api nodejs avec mangouste. Ceci est le schéma de l'objet 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, 
}); 

Donc, en bref, le problème est lorsque je tente de passer ObjectId, il arrête de lire après le « 562 » et voit le « b » comme un caractère illégal.

Répondre

0

Vous devez citer les chaînes:

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

Lorsque je tente que j'obtiens une erreur "chaîne inattendue" car elle attend un ObjectId pas une chaîne – digiwebguy

+0

Merci! la première fois que je l'ai essayé, j'avais accidentellement laissé une virgule après l'un des entires. Les placer entre guillemets le fixe. Merci encore! – digiwebguy

+0

Je reçois {000000000000000000000000} dans le champ ObjectId lorsque je transmets des valeurs comme celles-ci de la part d'un facteur .... Je suis en train d'utiliser C# driver .. des solutions? – Malar

0

reçoivent l'objet _id comme une chaîne et non pas comme ObjectId, quand vous avez cette id créer de nouveaux mongo.driver objectId

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