从jQuery 1.4.4到1.5.2的JSON.stringify问题

时间:2011-07-15 18:59:19

标签: jquery json

让一些JavaScript使用$.data为对象分配值,然后使用JSON.stringify。它在1.4.4(获得实际的JSON数据)中工作,但它在1.5.2+(空数据)中被破坏。

我做错了什么?

$document.ready {
    var o;
    o = {};
    $(o).data("to","to@email.com");
    $(o).data("from","from@email.com");
    $(o).data("html","true");
    $('#log').append(JSON.stringify(o));
};

<div id="log" class="line1"></div>

可在此转载:http://jsfiddle.net/Km4M4/6/

2 个答案:

答案 0 :(得分:1)

您的jsfiddle没有包含JSON库。另外,你正在以错误的方式调用jQuery。

但是你不能这样定义它的任何理由:

o = {
        "to":"to@email.com",
        "from":"from@email.com",
        "html":"true"
    };

更新了工作小提琴:http://jsfiddle.net/Km4M4/8/

答案 1 :(得分:0)

$。data用于在任何html标记中存储“可编程属性”。这些值不是可序列化的。其他情况是您要序列化属性的对象(您的情况)。尝试做@Mrchief或下面的更多js

var o = {
  a: 'some data',
  b: 'more data'
};
o.foo = bar;

$('#div').text( JSON.stringify(o) );

在这种方法中看到没有必要使用引号,因为JSON.stringify会为你提供;)