JSONArray - 如何使用javascript(jsp)显示

时间:2012-03-21 15:36:15

标签: javascript arrays

我有一个java servlet连接到MS SQL 2008数据库并检索信息,将结果集传递给类以将其转换为jsonarray然后返回该信息。

以下是使用http://localhost:8080/KReport/GetInfo?q=va-sql2008从浏览器浏览课程时返回信息的示例:

[{"machineinfo":{"DefaultGateway":"172.24.1.2","groupName":"servers.headoffice.vasa","ChassisManufacturer":"No Enclosure","DhcpEnabled":2,"LoginName":"","MotherboardProductCode":"440BX Desktop Reference Platform","MaxMemorySlots":"15","Machine_GroupID":"va-sql2008dev.servers.headoffice.vasa","timezoneOffset":-120,"ChassisSerialNumber":"None","MajorVersion":6,"MotherboardVersion":"None","MaxMemorySize":"256 GB","Manufacturer":"VMware, Inc.","MacAddr":"00-50-56-9F-00-11","ProductName":"VMware Virtual Platform","agentGuid":871664384736872,"OsInfo":"R2 Server Standard x64 Edition  Build 7600","PrimaryWinsServer":"172.24.1.9","SysSerialNumber":"VMware-42 1f 09 c3 bd 8c ad 60-22 e4 50 1c 35 52 76 fe","OsType":"2008","MotherboardManufacturer":"Intel Corporation","ipv6Address":"[fe80::edf0:d1bd:6ef8:a17d%11]","MachineVersion":"None","IpAddress":"172.24.1.184","DnsServer1":"172.24.1.22","DnsServer2":"172.24.1.29","ComputerName":"va-sql2008dev","ChassisAssetTag":"No Asset Tag","ChassisType":"Other","MotherboardSerialNumber":"None","SubnetMask":"255.255.255.0","MinorVersion":1,"agentInstGuid":"KSY99906876289809604","WinsEnabled":1,"ConnectionGatewayIp":"172.24.1.184","machName":"va-sql2008dev","ChassisVersion":"N\/A","BusSpeed":"0 MHz"}},{"machineinfo":{"DefaultGateway":"172.24.1.2","groupName":"servers.headoffice.vasa","ChassisManufacturer":"No Enclosure","DhcpEnabled":2,"LoginName":"","MotherboardProductCode":"440BX Desktop Reference Platform","MaxMemorySlots":"15","Machine_GroupID":"va-sql2008dev.servers.headoffice.vasa","timezoneOffset":-120,"ChassisSerialNumber":"None","MajorVersion":6,"MotherboardVersion":"None","MaxMemorySize":"256 GB","Manufacturer":"VMware, Inc.","MacAddr":"00-50-56-9F-00-11","ProductName":"VMware Virtual Platform","agentGuid":871664384736872,"OsInfo":"R2 Server Standard x64 Edition  Build 7600","PrimaryWinsServer":"172.24.1.9","SysSerialNumber":"VMware-42 1f 09 c3 bd 8c ad 60-22 e4 50 1c 35 52 76 fe","OsType":"2008","MotherboardManufacturer":"Intel Corporation","ipv6Address":"[fe80::edf0:d1bd:6ef8:a17d%11]","MachineVersion":"None","IpAddress":"172.24.1.184","DnsServer1":"172.24.1.22","DnsServer2":"172.24.1.29","ComputerName":"va-sql2008dev","ChassisAssetTag":"No Asset Tag","ChassisType":"Other","MotherboardSerialNumber":"None","SubnetMask":"255.255.255.0","MinorVersion":1,"agentInstGuid":"KSY99906876289809604","WinsEnabled":1,"ConnectionGatewayIp":"172.24.1.184","machName":"va-sql2008dev","ChassisVersion":"N\/A","BusSpeed":"0 MHz"}}]

其中列出了2台机器(如果您在那里搜索machineinfo,则会找到2个条目)。我已在JSONLint上验证了此返回的信息,并将其检出为有效的json。

我的servlet通过response.getWriter().write(njson.toString());返回信息,但我似乎无法弄清楚如何在另一页上使用javascript显示此信息。

我的最后一次尝试是使用:

<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
</head>
<script type="text/javascript">
$.ajax({
url:'http://localhost:8080/KReport/GetInfo?q=va-sql2008',
dataType:'json',
type:'GET',
success:function(data){
console.log(data);
},
error:function(jxhr){
console.log(jxhr.responseText);
}

});
</script>
</html>

但这不起作用 - 只是一个空白屏幕。

任何帮助都会受到赞赏吗?

2 个答案:

答案 0 :(得分:0)

console.log将数据输出到JavaScript控制台。如果要将其输出到页面,则需要执行DOM manipulation

答案 1 :(得分:0)

console.log会将数据输出到浏览器的开发者工具中。要在页面上显示,请在success回调中

$('body').append( "<pre>" + JSON.stringify(data, undefined, 2) + "</pre>" );