使用ajax/javascript显示多个json数组
Displaying multiple json arrays with ajax/javascript
我有一些问题显示多个JSON数组,如果有人可以帮助,我很感激。
JSON{
"houseOne": [
{
"name": "John Clarke",
"age": 22,
"dob": "19-11-90"
},
{
"name": "Mitch Woodier",
"age": 20,
"dob": "23-10-92"
},
{
"name": "Mavis Waddingham",
"age": 21,
"dob": "10-11-91"
}
],
"houseTwo": [
{
"name": "Luke Woodier",
"age": 22,
"dob": "19-11-90"
},
{
"name": "Rob Clarke",
"age": 20,
"dob": "23-10-92"
},
{
"name": "Alex Gayfag",
"age": 21,
"dob": "10-11-91"
}
]
}
Javascript<script type="text/javascript">
function ajaxRequest(url)
{
var request = new XMLHttpRequest();
// Work around for IE caching problem
if (url.indexOf('?') < 0) {
today = new Date();
url += '?' + today.getTime();
}
request.open("GET", url, false);
request.setRequestHeader("Cache-Control", "no-cache");
request.send();
return request.responseText;
}
var data = ajaxRequest("results.json");
var houses = JSON.parse(data);
function displayJson() {
var myDiv =document.getElementById("content");
for (house = 0; house < 3; house++) {
var home = houses.houseOne[house];
myDiv.innerHTML += houseDetails(home,house);
}
}
function houseDetails(home,houseNumber){
var myHTML = "<h1>House Mate "+ (houseNumber +1)+"</h1>";
myHTML += "<table>";
myHTML += "<tr><th>Name</th><th>Age</th><th>D.O.B</th></tr>";
myHTML += "<tr>";
myHTML += "<td>";
myHTML += home.name;
myHTML += "</td>";
myHTML += "<td>";
myHTML += home.age;
myHTML += "</td>";
myHTML += "<td>";
myHTML += home.dob;
myHTML += "</td>";
myHTML += "</table>";
return myHTML
}
</script>
基本上我可以让它显示houseOne作为一个表,但我不能让它显示houseOne和houseTwo,我希望这是清楚的,我不是很好与web开发。
问候,院长
在你的displayJson()函数中,你只引用house.houseOne
var home = houses.houseOne[house];
这是一个更新的版本(我也添加了jQuery) http://jsfiddle.net/XzZUR/1/
JSONvar houses = {
"houseOne": [{
"name": "John Clarke",
"age": 22,
"dob": "19-11-90"
}, {
"name": "Mitch Woodier",
"age": 20,
"dob": "23-10-92"
}, {
"name": "Mavis Waddingham",
"age": 21,
"dob": "10-11-91"
}],
"houseTwo": [{
"name": "Luke Woodier",
"age": 22,
"dob": "19-11-90"
}, {
"name": "Rob Clarke",
"age": 20,
"dob": "23-10-92"
}, {
"name": "Alex Gayfag",
"age": 21,
"dob": "10-11-91"
}]
};
Javascript function displayJson() {
var myDiv = $("#content");
$.each(houses, function(){
var house = this;
$(house).each(function(key){
myDiv.append(houseDetails(this,key));
})
});
}
我建议不要使用同步ajax请求,最好使用回调。您可以像这样遍历每个house对象:
function displayJson() {
var i,h,ret=[];
var myDiv =document.getElementById("content");
// houseone and housetwo
for (h in houses) {
// houseone and housetwo are arrays: [house,house,house]
// for every house in this array do:
for(i=0;i<houses[h].length;i++){
var home = houses[h][i];
ret.push(houseDetails(home,i));
}
}
//setting innerHTML is resource intensive
// no reason to do this within a loop.
myDiv.innerHTML=ret.join("");
}
相关文章:
- 需要帮助设置json数组
- 如何使用 node.js 比较两个 json 数组
- 根据id将json数组组合为一个json数组
- 如何创建JSON数组
- 如何将package.json数组传递给grunt.js
- 访问json数组中的对象
- JSON数组数据返回Undefined
- 如何向JSON数组动态添加属性
- 如何从json数组中获取特定值
- 从多维嵌套json数组创建下拉列表
- 在ListView中添加JSON数组中存储的图像-ReactNative
- jquery在json数组中循环
- 将 JSON 数组解析为 JavaScript 数组
- 如何在php中读取没有任何键的JSON数组
- 如何在Jquery中迭代JSON数组
- 如何在cycle js中从JSON数组创建组件
- 如何使用jquery返回php-json数组对象
- JSON数组转换为JS对象数组
- 使用System从C#集合创建JSON数组.网状物剧本序列化
- 使用Underscore.js修改json数组中所选元素的更有效方法