0

更新:

来自服务器的数据是:

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 数据库中。

我能做些什么?

4

2 回答 2

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/

于 2013-06-04T00:01:31.913 回答
1

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);

你会看到它会正确转换。

于 2013-06-04T00:02:45.347 回答