简单存储JSON .get会产生一个数组吗?

时间:2013-03-13 21:40:11

标签: javascript jquery asp.net-mvc json

简单地说,我试图从json get方法创建一个字符串数组。该方法返回一个List,它来自MVC控制器方法JsonResult output(string centreName),在我的javascript中,我有这个:

    <script src="../../Content/jquery.js"></script>
    <script type="text/javascript">
        jQuery(function () {
            jQuery("#centres").change(function () {
                var _this = jQuery(this);
                var selectedCentre = _this.val();
                $.getJSON("/Centres/output?centreName=" + selectedCentre, 
function(results) {
    // store the results here in a new array, so I can do something with them
                });
            });
        });
    </script>

现在上面的代码完全正常,我只是不知道如何正确地使用结果。我如何制作一个漂亮的“字符串数组[] =结果”呢?

修改

这是需要将结果作为字符串数组的方法:

document.getElementById("container2").innerHTML = "";
                        var div;
                        for (var i = 0; i < document.getElementById("centres").value; i++) {
                            div = document.createElement("div");
                            div.className = "class1";
                            div.innerHTML = "Shop " + data[i];
                            div.innerHTML += "<br>";
                            div.innerHTML += "Floor Space: <b>" + spaces[i] + " m2 </b>";
                            div.style.width = "100px";
                            div.style.height = "100px";
                            div.style.padding = "0px";
                            div.style.float = "left";
                            document.getElementById("container2").appendChild(div);
                        }

如您所见,我需要遍历每个商店代码(data [i])。我该怎么做?

2 个答案:

答案 0 :(得分:1)

您不需要将其存储在漂亮的“字符串数组[]”中。 .NET JSON序列化程序应该为您序列化您的JSON,它基本上是一个类似于数组的结构。只需直接访问结果。

$.getJSON("/Centres/output?centreName=" + selectedCentre, function(results) {
    var data = results;

    // You can iterate over the data (or results directly) and manipulate it as needed
});

答案 1 :(得分:1)

在json Universe上,列表和数组是相同的。 List没有具体的实现,你只有数组。除非服务器返回单个对象,否则results可能已经是一个对象数组。

如果您尝试从对象中提取特定字段,可以使用$.each()语句迭代数组并获取必要的信息。

$.each(results, function(index, element) {
  // your logic here
}

修改

如果results是一个字符串数组,并且您需要将它们转换为单个字符串,则可以使用join方法

var results = ["Banana", "Orange", "Apple", "Mango"];
var joinedString = results.join();
//joinedString = 'Banana,Orange,Apple,Mango'

如果你需要选择不同的分隔符,你可以使用这种方法

var results = ["Banana", "Orange", "Apple", "Mango"];
var joinedString = results.join(' and ');
//joinedString = 'Banana and Orange and Apple and Mango'