我試着使用節點來解析來自服務器的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