Возможно, это легкая тема, но я стараюсь и пытаюсь, и я не могу этого сделать. Я хочу преобразовать строку в объект javascript. С тех пор я попробовал несколько форм для его решения. Я работаю с узлом, и я хочу сделать запрос AJAX, а серверная сторона должна принять переменные запроса и преобразовать в объект javascript (чтобы сделать расширение с othe объектом). Я покажу вам, как мой код:Я не могу преобразовать строку в объект jasvascript
Client
var data = '{"addresses":"hola"}';
// make more and more.
makeTheRequest("POST",'users/update',"param="+JSON.stringify(data),'json',onSuccess, onError);
Сервер
var param = eval('{' + req.body.param + '}');
console.log("\nuser.js-> router.post-> eval: " + param);
console.log("\nuser.js-> router.post-> req.param: " + req.body.param);
console.log("\nuser.js-> router.post-> JSON.parse: " + JSON.parse(req.body.param));
console.log("\nuser.js-> router.post-> user: " + req.session.user);
/*TODO: save on the database.... and more*/
res.send({success:0, error:1, result:"No USER. No SESSION"});
Итоговые логи сервера результат
user.js-> router.post-> eval: {"addresses":"hola"}
user.js-> router.post-> req.param: "{\"addresses\":\"hola\"}"
user.js-> router.post-> JSON.parse: {"addresses":"hola"}
user.js-> router.post-> user: [object Object]
То, что я пытаюсь сделать, это вызвать функцию exentd для слияния двух объектов, например: req.session.user = extend (false, req.session.user, param);, но параметр является дескриптором, как буква массива буквой-> 1: {, 2: ", 3: a, 4: d, 5: d, 6: r, 7: e, 8: s, 9: s ... Любая идея, что я делаю неправильно ?? Большого спасибо.
Прежде всего, почему вы вызываете 'JSON.stringify (data)' когда 'data' уже является текстом JSON? –