jquery / json输出数据

时间:2012-01-26 20:15:37

标签: jquery ajax json

我在返回的数组中出现了一些问题 - 在控制台日志中显示

    {
   "text":"{\"error\":false,\"msg\":\"found in search\"}",
   "data":{
      "notifications":[

      ]
   }
}

我正在使用

success : function(data){               
            $('#waiting').hide(500);
            $('#message').removeClass().addClass((data.error === true) ? 'error' : 'success').text(data.msg).show(500);
            if (data.error === true)
                $('#restricted_locator').show(500);
        },

然而data.msg返回undefined,但是现在查看数组它没有什么可以获取但是我如何更改以从文本中获取数据?

提前致谢!

2 个答案:

答案 0 :(得分:0)

我假设问题中的控制台输出是数据对象。因此,您应该使用data.text.msg来设置文本,并使用data.text.error来检查错误。

试试这个。

$('#message')
.removeClass()
.addClass((data.text.error === true) ? 'error' : 'success')
.show(500)//I am deliberately calling show first because you will see the element atelast
.text(data.text.msg || "no message");//If there is no msg you will at least see "no message" just to confirm you that msg is undefined or null

答案 1 :(得分:0)

如果我没弄错,你必须使用jQuery.parseJSON(data)$.parseJSON(data)将“数据”解析为JSON,所以你的代码应该是:

function(data) {               
    var data_obj = $.parseJSON( data.text );

    $('#waiting').hide(500);
    $('#message').removeClass().addClass((data_obj.error === true) ? 'error' : 'success').text(data_obj.msg).show(500);

    if (data_obj.error === true)
        $('#restricted_locator').show(500);
    },