Json在jquery中逐个获取char

时间:2011-02-03 09:59:14

标签: jquery json asp.net-mvc-2

我有asp.net mvc 2应用程序。  因为几天我试图通过操作返回Json,从控制器到Jquery的操作中读取List。但需要花费大量的时间和精力来解决这个问题。现在我可以使用以下方法读取json数据:

$.getJSON('/LoadTest/GetAllQuestionsForTest', function(data) {
    $.each(data, function(i,item) {
        alert(item);
    });
});

因为,我的json输出是:

[{"QuestionId":2,"QuestionText":"Question 1","TopicId":1},{"QuestionId":3,"QuestionText":"Question 2","TopicId":1}]

我在这里一个接一个地在警告框中的字符而不是像“QuestionId”这样的字符串。我想从这个脚本中读取“QuestionId”和“QuestionText”的值,我该怎么做? 即使我尝试了数据[“QuestionId”]但可以阅读它

被修改

This is working for me :

      $.getJSON('/LoadTest/GetAllQuestionsForTest', function(data) {

                var t = $.parseJSON(data);
                alert(t[0].QuestionText);


            });

但仅显示第0个索引值。我想在数据收集中获取对象的数量。所以我可以迭代它。怎么做?

5 个答案:

答案 0 :(得分:1)

您可以尝试:

alert(data[0].QuestionId)

尝试做:

$.get("/LoadTest/GetAllQuestionsForTest", function(data) {
   alert(data);
   var t = $.parseJSON(data);
   alert(t);
})

输出是什么?

你在控制器上使用它吗? :

return Json(object, JsonRequestBehavior.AllowGet);

答案 1 :(得分:0)

我认为你需要使用

alert(data[i].QuestionId);
alert(data[i].QuestionText);

答案 2 :(得分:0)

你快到了。

看起来像是

$.each(data, function(i) {
    alert(data[i].QuestionId);
});

应该做什么?

答案 3 :(得分:0)

我想

alert(item[i].QuestionId);

好吧,让我们删除每个。

alert(data[0].QuestionId);

代替

$.each(data, function(i,item) {
        alert(item);
    });

答案 4 :(得分:0)

在这种情况下,每个函数都抓取每个数组。您可能希望使用内部每个迭代数组的值。

$.each(json, function(i,item) {
    $.each(item, function(j,subitem) {
        alert(subitem);       
    });
});