JSON.stringify不起作用 - 未定义

时间:2014-11-07 11:30:07

标签: javascript php jquery json

我在javascript中遇到了JSON的麻烦。我有一个代码,我一直使用JSON.stringify,从来没有遇到过问题。但是当我输入我的应用程序时,我无法使用它。它让我在控制台(谷歌浏览器)中返回以下内容:

未捕获TypeError:undefined不是函数lista.js:188

绝对是stringify函数所在的行。

你们中有谁知道解决这个问题的方法吗?它就像找不到JSON单元那样。或者也许是一种解决方法......我将在下面发布我的代码:

提前致谢!

在我的index.php中我有一个标题:

<script src="http://ajax.cdnjs.com/ajax/libs/json2/20110223/json2.js"></script>
  

//这是函数的代码。

function Salvar(AIdProcesso){
var Respostas = new Array ();
var Registro = 1;

$('.chkResposta').each(function(){
    var chk = $(this);

    var IdTitulo = chk.attr("idTitulo");
    var Valor    = chk.isChecked() ? 'true' : 'false';

    var Item = [IdTitulo, Valor];

    Respostas[Registro] = Item;
    Registro = Registro+1;
});

$('.edtValor').each(function(){
    var edt = $(this);

    var IdTitulo = edt.attr("idTitulo");
    var Valor    = edt.val();

    var Item = [IdTitulo, Valor];

    Respostas[Registro] = Item;
    Registro = Registro+1;
});

//this is where I get the error!!
var JsonString = JSON.stringify(Respostas, function(){}, 2);

$.post(        
    'processos/lista.php', {
        Op: 'Inscricao',
        Id: AIdProcesso,
        Itens: JsonString
    }, function(rHtml){
        JSON = jQuery.parseJSON(rHtml);

        $('.breadcrumb').html(JSON.breadcrumb);
        $('.Box').html(JSON.box);
});
}

1 个答案:

答案 0 :(得分:0)

在这一行

var JsonString = JSON.stringify(Respostas, function(){}, 2);

你传递的替换函数并没有返回任何内容。传递给stringify的替换函数预计会返回一些东西。有关详细信息,请参阅the specification


附注:您在页面中包含json2.js,但请注意all modern browsers以及IE8本身支持JSON。除非您需要支持IE7及更早版本,或者其他供应商的旧浏览器,否则您不再需要该脚本了。