如何将JSON数据存储为JavaScript表格式?
我正在开发一个web应用程序,我使用jQuery1.5和JavaScript作为应用程序的主要功能。我从我的应用程序连接到一个RESTful界面,在那里我为一个人获取信息。 我使用此函数从json页面检索信息:如何将JSON数据存储为JavaScript表格式?,javascript,json,jquery,getjson,Javascript,Json,Jquery,Getjson,我正在开发一个web应用程序,我使用jQuery1.5和JavaScript作为应用程序的主要功能。我从我的应用程序连接到一个RESTful界面,在那里我为一个人获取信息。 我使用此函数从json页面检索信息: var jqxhr = $.getJSON("example.json", function() { // store the data in a table } 我的json格式的数据如下所示,但我将得到一个以上具有以下格式的人员: [{"person":{"time":"2010-
var jqxhr = $.getJSON("example.json", function() { // store the data in a table }
我的json格式的数据如下所示,但我将得到一个以上具有以下格式的人员:
[{"person":{"time":"2010-02-18T17:59:44","id":1,"name": "John","age":60, "updated_at":"010-02-18T17:59:44"}}]
如何在JavaScript表(更准确地说是数组)中只存储该人员的id、姓名和年龄,而忽略其余信息?您可以使用jQuery的函数:
var data = $.map(originalData, function(person) {
return { id: person.id, name: person.name, age: person.age };
});
map
基本上转换Array
中的每个项目,生成带有修改对象的新Array
$.getJSON("example.json", function(data) {
var name = data.person.name;
var id = data.person.id;
var age = data.person.age;
}
javascript表的确切含义是什么
你可以通过
var $table = $("<table>
<tr><td>name</td><td>"+name+"</td></tr>
<tr><td>id</td><td>"+id+"</td></tr>
<tr><td>age</td><td>"+age+"</td></tr>
</table>");
var$table=$(“
名称“+名称+”
id“+id+”
年龄“+年龄+”
");
以下是您需要的基于MAP函数的特定JavaScript/jQuery
var originalData = [
{ "person": { "time": "2010-02-18T17:59:34", "id": 1, "name": "John", "age": 60, "updated_at": "010-02-18T17:59:41"} },
{ "person": { "time": "2010-02-18T17:59:44", "id": 2, "name": "Bob", "age": 50, "updated_at": "010-02-18T17:59:42"} },
{ "person": { "time": "2010-02-18T17:59:54", "id": 3, "name": "Sam", "age": 40, "updated_at": "010-02-18T17:59:43"} }
];
var data = $.map(originalData, function (ele) {
return { id: ele.person.id, name: ele.person.name, age: ele.person.age };
});
下面是一个完整的示例,它将以HTML格式转换和显示结果
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title></title>
<link href="Styles/Site.css" rel="stylesheet" type="text/css" />
<script src="Scripts/jquery-1.6.1.js" type="text/javascript"></script>
<script type="text/javascript">
function CreateTableView(objArray, theme, enableHeader) {
// set optional theme parameter
if (theme === undefined) {
theme = 'mediumTable'; //default theme
}
if (enableHeader === undefined) {
enableHeader = true; //default enable headers
}
// If the returned data is an object do nothing, else try to parse
var array = typeof objArray != 'object' ? JSON.parse(objArray) : objArray;
var str = '<table class="' + theme + '">';
// table head
if (enableHeader) {
str += '<thead><tr>';
for (var index in array[0]) {
str += '<th scope="col">' + index + '</th>';
}
str += '</tr></thead>';
}
// table body
str += '<tbody>';
for (var i = 0; i < array.length; i++) {
str += (i % 2 == 0) ? '<tr class="alt">' : '<tr>';
for (var index in array[i]) {
str += '<td>' + array[i][index] + '</td>';
}
str += '</tr>';
}
str += '</tbody>'
str += '</table>';
return str;
}
$(document).ready(function () {
var originalData = [
{ "person": { "time": "2010-02-18T17:59:34", "id": 1, "name": "John", "age": 60, "updated_at": "010-02-18T17:59:41"} },
{ "person": { "time": "2010-02-18T17:59:44", "id": 2, "name": "Bob", "age": 50, "updated_at": "010-02-18T17:59:42"} },
{ "person": { "time": "2010-02-18T17:59:54", "id": 3, "name": "Sam", "age": 40, "updated_at": "010-02-18T17:59:43"} }
];
var data = $.map(originalData, function (ele) {
return { id: ele.person.id, name: ele.person.name, age: ele.person.age };
});
$('#results').append(CreateTableView(data, 'lightPro', true));
});
</script>
</head>
<body>
<div id="results" style="width: 500px; margin: 20px auto;">
</div>
函数CreateTableView(objArray、主题、enableHeader){
//设置可选的主题参数
如果(主题===未定义){
主题='mediumTable';//默认主题
}
如果(enableHeader==未定义){
enableHeader=true;//默认启用标头
}
//如果返回的数据是对象,则不执行任何操作,否则尝试解析
var array=typeof objArray!=“object”?JSON.parse(objArray):objArray;
var-str='';
//桌头
如果(启用标头){
str+='';
for(数组[0]中的变量索引){
str+=''+索引+'';
}
str+='';
}
//桌体
str+='';
对于(var i=0;i
你说的“javascript表”是什么意思?当你说“javascript表”时,你的意思是你想把它存储在一个普通的javascript数组中吗?@Jonathan M:是的,很抱歉没有说清楚,我指的是一个数组。对不起,把你的答案编辑得一团糟。想要改进其他人的编辑,但后来我后悔了,想回滚。@Prav Sharma:你的答案似乎不错,但首先,我需要将它们存储在一个数组中(我对问题进行了更具体的编辑),其次,如果我提醒姓名、id和年龄以查看返回的值,我会得到三个值的“未定义”。