简单地说,我试图从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])。我该怎么做?
答案 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'