0

简单地说,我正在尝试从 json get 方法创建一个字符串数组。该方法返回一个列表,它来自一个 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])。我该怎么做呢?

4

2 回答 2

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
});
于 2013-03-13T21:43:52.517 回答
1

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

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

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

编辑

ifresults是一个字符串数组,您需要将它们转换为单个字符串,您可以使用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'
于 2013-03-13T21:44:16.680 回答