如何通过js获取json数据,传到页面

JavaScript04

如何通过js获取json数据,传到页面,第1张

有两种方法,一种是$.ajax(option)方法,一种是$.getJSON()方法。

实例:

一、数据集所在jsp页面out.jsp,代码如下

<%@page contentType="text/plaincharset=UTF-8"

language="java"

import="java.io.*,java.net.*,java.util.*"

buffer="8kb"

session="false"

autoFlush="true"

%>

<%

String jsonData="{data:[{id:200901,name:'name1'},{id:200902,name:'name2'},{id:200903,name:'姓名3'},{id:200904,name:'姓名4'},{id:200905,name:'姓名5'}]}"

//out.clear()

out.write(jsonData)

%>

二、js处理页面

(1)

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "">

<html xmlns="">

<head>

<title>test</title>

<meta http-equiv="Content-Type" content="text/htmlcharset=UTF-8"/>

<script type="text/javascript" language="javascript" src="js/jquery.js"></script>

<script type="text/javascript">

function getOut(){

var s=''

$.ajax({

type:'get',//请求方式

url:'out.jsp?id='+Math.random(), // AJAX HTTP请求接口

data:'',//提交到服务器接口的参数 比如'{cid:0405}',结果为out.jsp?cid=0405格式

dataType:'json',//请求类型为json, 更多见jquery doc文档

timeout:7000,//请求超时后停止请求

success: function(json){

var d=json.data

$.each(d,function(i){

s+=('<p>id:'+d[i].id +' | name:'+d[i].name+'</p><hr/>')

})

$('#out').html(s)}})

}

</script>

</head>

<body style="margin:20pxtext-align:centerbackground:#E5E5E5">

<input type="text" name="getdata" onclick="getOut()"/>

<div id="out">

</div>

</body>

</html>

(2)

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "">

<html xmlns="">

<%@ page language="java" contentType="text/htmlcharset=utf-8"%>

<head>

<script type="text/javascript" src="js/jquery-1.3.2.min.js"></script>

<script>

function showStudent(){

var s=''

$.getJSON("out.jsp?id="+Math.random(),function(json){

var d=json.data

for(var i=0i<d.lengthi++){

s+=('<p>id:'+d[i].id +' | name:'+d[i].name+'</p><hr/>')

}

$('#content').html(s)

})

}

</script>

</head>

<body>

<input type="button" value="获取学院信息" onclick="showStudent()" />

<div id="content"></div>

</body>

</html>

总结:

(1)有时候总是出现错误,原因在于——json数据格式有问题,前端$.getJSON()方法并没有什么错误。

(2)相对来说,$ajax(option)方法使用比较灵活,可以用在比较复杂的情况。

如果要使用js读取json文件,那么ajax操作是必须的了。原生ajax有点麻烦,我想你们项目一定用了什么js库,这里给个jquery的例子:<br>$.get('xx.json路径', function(data){<br> alert(data)// data即为json文件内容里的json数据<br>}, 'json')如果把这个文件的内容读取为纯文本,可以修改$.get的最后一个参数json为text,或者删掉这个参数,默认也是text。