1

我安装了 node.js 和 express.js,我正在尝试使用:

var str = { test: 'info'};
obj = JSON.parse(str);

但它会导致错误:SyntaxError: Unexpected token 0 at Object.parse (native)

我怎样才能解决这个问题?谢谢。

4

6 回答 6

4

你解析ObjectObject

JSON.parse()期望string

var str = '{"test": "info"}';
obj = JSON.parse(str);
于 2012-05-15T06:56:57.583 回答
3

基本上 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

于 2012-05-15T06:59:25.930 回答
1

str 不是字符串,而是对象。首先将整个东西放入一个字符串中,即:

var str = '{ "test": "info"}';
obj = JSON.parse(str);
于 2012-05-15T06:57:49.833 回答
1

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);
});
于 2017-12-03T04:55:48.333 回答
0

如果要创建 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/

于 2012-05-15T14:51:48.170 回答
0

你调用的东西str实际上已经是一个对象。JSON 不是必需的,您只需要纯 JavaScript:

var obj = { test: 'info'};

console.log( JSON.stringify(obj) );  // JSON output
于 2016-06-17T06:22:25.350 回答