JSON.parse()之后仍然有反斜杠

时间:2013-06-03 23:13:01

标签: javascript jquery json

更新

来自服务器的数据是:

var data = {
         "files":[
                      {
                         "filename": "29f96b40-cca8-11e2-9f83-1561fd356a40.png",
                         "cdnUri":"https://abc.s3.amazonaws.com/"
                      }
                   ]
                }

我将JSON数据保存在隐藏的输入字段中:

更新

$('#logoVal').val(JSON.stringify(file));

HTML是:

<input id="logoVal" type="hidden" value="{"filename":"29f96b40-cca8-11e2-9f83-1561fd356a40.png","cdnUri":"https://abc.s3.amazonaws.com/"}" name="logo">

当我提交表格时,我会这样做:

var data = $("#form").serializeArray();
data.logo = JSON.parse($('#logoVal').val());

但徽标变为:

"logo": "{\"filename\":\"72553050-cca2-11e2-9c13-7d08f99324cc.png\",\"cdnUri\":\"https://abc.s3.amazonaws.com/\"}",

在mongo数据库中。

我该怎么办?

2 个答案:

答案 0 :(得分:1)

为您的值使用单引号:

<input id="logoVal" type="hidden" value='{"filename":"29f96b40-cca8-11e2-9f83-1561fd356a40.png","cdnUri":"https://abc.s3.amazonaws.com/"}' name="logo">

工作演示:http://jsfiddle.net/AlienWebguy/uUcnW/

答案 1 :(得分:1)

Example on jsFiddle

使其成为有效的HTML

<input id="logoVal" type="hidden" value='{"filename":"29f96b40-cca8-11e2-9f83-1561fd356a40.png","cdnUri":"https://abc.s3.amazonaws.com/"}' name="logo">

然后你可以使用

进行测试
var val = JSON.parse( $("#logoVal").val() );
console.log( val );
alert(val.filename);

你会发现它会正确转换。