我试着使用节点来解析来自服务器的JSON响应,但其未来通过为一个字符串像这样的例子:JSON.parse串 - 意外的标记
"{name:'hello'}"
这里是我是如何重建的确切问题:
我试过replace(/'/g, '"');
去除单引号和JSON.stringify
在一些toString()
我似乎无法找出这一个>。 <
。
。
编辑
我已经建立了一个节点服务器收到了一些数据的请求,然后代理服务器通过到另一台服务器。然后我保存一些来自响应的信息(http body)并将另一个对象返回给客户端。下面我的代码:
var express = require('express');
var app = express();
var request = require('request');
var bodyParser = require('body-parser');
var mongo = require('mongojs');
app.use(bodyParser.json());
app.use(bodyParser.urlencoded({
extended: true
}));
app.use('/login', function(req, res) {
request.post(
'http://192.168.1.53',
{ form: { req: 'auth', cid: '1', em: req.body.em, pw: req.body.pw, rm: true} },
function (error, response, body) {
//var body = JSON.parse(body);
if (!error && response.statusCode == 200 && body.success == true) {
user.res = res;
var cookies = response.headers['set-cookie'];
database.createUser(cookies, req.body.em, req.body.pw);
} else if (body.success == false) {
res.json({success: false, error: body.success});
} else {
res.json({success: false, error: error});
}
}
);
});
这不是有效的JSON。这不仅仅是单引号,'name'也需要用双引号括起来。这真的应该在服务器端修复。您可能可以在客户端修复它,但这将非常繁琐。 – 2014-10-09 20:23:24
在尝试“修复”之前,您是否可以修复不良数据的来源?如果没有,还有其他不安全的方法来解决它。 – epascarello 2014-10-09 20:31:04
没有办法解决它在其他服务器上。我将添加我正在使用的接收http响应的node.js代码,也许它在我身边我可以修复,因为如果我通过控制台使用ajax执行相同的操作,它将作为json对象返回。 – 2014-10-09 20:33:15