-1

这是我由 C# JSON 解析器生成的 JSON 字符串:

{
    "NewDataSet": {
        "Table": [
            {
                "ResultId": "1",
                "AttachmentId": "1",
                "AttachmentName": "Report1",
                "RowsCount": "34",
                "NotifyUserName": "william",
                "InsBy": "developer",
                "InsAt": "2012-12-07T17:28:01.46+08:00",
                "IsNotify": "false"
            },
            {
                "ResultId": "2",
                "AttachmentId": "2",
                "AttachmentName": "Report2",
                "RowsCount": "37",
                "NotifyUserName": "william",
                "InsBy": "developer",
                "InsAt": "2012-12-07T17:28:15.57+08:00",
                "IsNotify": "false"
            },
            {
                "ResultId": "3",
                "AttachmentId": "3",
                "AttachmentName": "Report3",
                "RowsCount": "69",
                "NotifyUserName": "william",
                "InsBy": "developer",
                "InsAt": "2012-12-07T17:28:25.58+08:00",
                "IsNotify": "false"
            }
        ]
    }
}

然后我想将字符串解析到前端 JavaScript 以迭代值。我是这样做的。

  var jsonText;
        $.ajax({
            type: "POST",
            url: "Default.aspx/MethodWithNoParameterJSON",
            data: {},
            contentType: "application/json;charset=utf-8",
            dataType: "json",
            async: true,
            cache: false,
            success: function (msg) {
                //rulesName = dbtitle+msg.d;
                //rulesCount = +msg.d;
                jsonText = msg.d;
               alert(jsonText.NewDataSet.Table[0].ResultId), 
            },
            error: function (x, e) {
                alert("The call to the server side failed. " + x.responseText);
            }
        });

如何获取子元素数据jsonText.NewDataSet.Table[0].ResultId?每当我调用alert(jsonText.NewDataSet.Table[0].ResultId)时,它总是会提示 null 或 undefined 对象。

4

2 回答 2

1

你为什么msg.d要设置你的jsonText变量?.d财产从何而来?该msg参数应该已经是从您的 JSON 响应创建的对象。试试这个:

msg.NewDataSet.Table[0].ResultId

(请注意,您的jsonText变量命名错误:此时您拥有的不是 JSON 或“文本”,它是一个对象 - 或者,在您的情况下,undefined因为msg.d未定义。但您正试图将其用作对象,不像 JSON。)

于 2012-12-08T02:43:45.683 回答
0

错字?我认为应该是

jsonText.NewDataSet.Table[0].ResultId // replace RulesId with ResultId
于 2012-12-08T02:36:50.343 回答