我安裝的Node.js和express.js,我嘗試使用:爲什麼express.js生成JSON.parse錯誤?
var str = { test: 'info'};
obj = JSON.parse(str);
但它會導致一個錯誤:語法錯誤:意外的令牌0在Object.parse(原生)
我怎樣才能解決這個問題?謝謝。
我安裝的Node.js和express.js,我嘗試使用:爲什麼express.js生成JSON.parse錯誤?
var str = { test: 'info'};
obj = JSON.parse(str);
但它會導致一個錯誤:語法錯誤:意外的令牌0在Object.parse(原生)
我怎樣才能解決這個問題?謝謝。
您解析Object
到Object
?
JSON.parse()
預計string
:
var str = '{"test": "info"}';
obj = JSON.parse(str);
str是不是字符串,而是一個對象。把整個事情到一個字符串第一,即:
var str = '{ "test": "info"}';
obj = JSON.parse(str);
var str ='{test:'info'}'; obj = JSON.parse(str);我寫,但同樣的錯誤。 – user1144700
注意你的報價類型,和/或確保你逃脫嵌入式報價。 –
基本上JSON.parse()來預計字符串,但你傳遞的對象,所以不是這樣做:
var original = { test: 'info'};
var str = JSON.stringify(original);
var restored = JSON.parse(str);
這裏是有幫助的文檔有關JSON https://developer.mozilla.org/en/Using_native_JSON
謝謝!這項工作! – user1144700
如果你想創建JSON你需要使用JSON.stringify
。
var thing = { test: 'info' };
var json = JSON.stringify(thing);
如果你想解析JSON你需要使用parse
的對象。 Parse期望您使用有效的JSON。
var json = '{ "test": "info" }'; //Use double quotes for JSON
var thing = JSON.parse(json);
一個簡單的方法來測試,如果你使用的是有效的JSON是使用類似:http://jsonlint.com/
您呼叫str
的東西實際上已經是一個對象。 JSON是沒有必要的,純JavaScript是所有你需要:
var obj = { test: 'info'};
console.log(JSON.stringify(obj)); // JSON output
express.js不能自行解析JSON對象。嘗試使用body-parser
var app = require('express')();
var bodyParser = require('body-parser');
var multer = require('multer'); // v1.0.5
var upload = multer(); // for parsing multipart/form-data
app.use(bodyParser.json()); // for parsing application/json
app.use(bodyParser.urlencoded({ extended: true })); // for parsing application/x-www-form-urlencoded
app.post('/profile', upload.array(), function (req, res, next) {
console.log(req.body);
res.json(req.body);
});
go with'obj = str;':D – Vytautas