我安装的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