jquery解析json问题

时间:2012-05-28 14:45:46

标签: jquery ajax

我在两台服务器上运行了一个应用程序,一个正常,一个不能理解原因。

ajax查询..

 $.ajax({
        type: "POST",
        url: "WebService.asmx/GetFinish1",
        data: '{' +
                        'Item:"' + item + '"' +
                   '}',
        contentType: "application/json; charset=utf-8",
        dataType: "json",
        success: function (msg) {
            var data = jQuery.parseJSON(msg);
            $("#item").val(JSON.stringify(msg));

在第$("#item").val(JSON.stringify(msg));行,我得到了......

{"d":"{\"0\":{\"i\":\"MODIFIED C/W TOOL MC WALL\",\"D\":\"Notes\",\"V\":\"MODIFIED C/W TOOL MC WALL\"},\"1\":{\"i\":\"EA\",\"D\":\"Unit\",\"V\":\"EA\"},\"2\":{\"i\":\"EA\",\"D\":\"Unit\",\"De\":\"Unit\",\"V\":\"EA\"}}"}

第二个我得到

"{\"0\":{\"i\":\"1x 8351-3  &  2 x 8352-3\",\"D\":\"Notes\",\"V\":\"1x 8351-3  &  2 x 8352-3\"},\"1\":{\"i\":\"PC3\",\"D\":\"Unit\",\"V\":\"PC3\"},\"2\":{\"i\":\"PC3\",\"D\":\"Unit\",\"De\":\"Unit\",\"V\":\"PC3\"}}"

第二个有效,第一个没有,但为什么不同?相同的代码!额外的{}和d:来自哪里?

2 个答案:

答案 0 :(得分:1)

您不需要

var data = jQuery.parseJSON(msg);
$("#item").val(JSON.stringify(msg));

因为msg由于dataType: 'json'属性中使用ajax而已经格式化为JSON格式。

答案 1 :(得分:0)

我不知道为什么,但我必须使用以下var data = jQuery.parseJSON(msg.d);