노드를 사용하여 서버에서 JSON 응답을 구문 분석하려고하지만 다음과 같은 문자열로 전달됩니다.
"{name:'hello'}"
정확한 문제를 재현 한 방법은 다음과 같습니다.
나는 시도했다 replace(/'/g, '"');
따옴표를 제거하고, JSON.stringify
뿐만 아니라 일부에 던져toString()
이건 모르겠네요>. <
.
.
편집하다
나는 다른 서버로 프록시하는 일부 데이터로 요청을 수신하기 위해 노드 서버를 구축했습니다. 그런 다음 응답 (http 본문)에서 일부 정보를 저장하고 다른 개체를 클라이언트 측에 반환합니다. 내 코드는 다음과 같습니다.
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을 처리하기 위해 SENCHA Ext.js 모듈을 사용하여 json을 완벽하게 파싱하는 디코드 함수를 호출 할 수 있습니다.
http://docs.sencha.com/extjs/4.2.2/source/JSON.html#Ext-JSON
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다