ajax接收json数据到js解析
今天又学到了一点新知识,脑子记不住东西特把它记录下来!
页面ajax请求后台时一般都是返回字符串进行判断,要是返回list或者对象时该怎么办?
第一种:ajax接收到list并返回给前台
js代码:
- function test(obj){
- var str = $("#tt").val();
- webTest(str,function(result){
- alert(result);//将后台返回结果alert一下
- var list = eval(result);//解析json
- for(var i = 0;i < list.length;i++){//循环遍历数据
- var userinfo = list[i];
- alert(userinfo.name+"+"+userinfo.age+"+"+userinfo.sex+"+"+userinfo.address);
- }
- });
- }
function test(obj){
var str = $("#tt").val();
webTest(str,function(result){
alert(result);//将后台返回结果alert一下
var list = eval(result);//解析json
for(var i = 0;i < list.length;i++){//循环遍历数据
var userinfo = list[i];
alert(userinfo.name+"+"+userinfo.age+"+"+userinfo.sex+"+"+userinfo.address);
}
});
}</pre><span style="white-space:pre;"></span>上面红字webTest方法(这里是调用webservice,和ajax处理流程一样)<div class="dp-highlighter bg_javascript"><div class="bar"><div class="tools"><b>[javascript]</b> <a href="#" class="ViewSource" title="view plain" onclick="dp.sh.Toolbar.Command('ViewSource',this);return false;">view plain</a><span data-mod="popu_168"> <a href="#" class="CopyToClipboard" title="copy" onclick="dp.sh.Toolbar.Command('CopyToClipboard',this);return false;">copy</a><div style="position: absolute; left: 540px; top: 803px; width: 16px; height: 16px; z-index: 99;"><embed id="ZeroClipboardMovie_2" src="https://csdnimg.cn/public/highlighter/ZeroClipboard.swf" loop="false" menu="false" quality="best" bgcolor="#ffffff" width="16" height="16" name="ZeroClipboardMovie_2" align="middle" allowscriptaccess="always" allowfullscreen="false" type="application/x-shockwave-flash" pluginspage="http://www.macromedia.com/go/getflashplayer" flashvars="id=2&width=16&height=16" wmode="transparent"></div><div style="position: absolute; left: 540px; top: 803px; width: 16px; height: 16px; z-index: 99;"><embed id="ZeroClipboardMovie_8" src="https://csdnimg.cn/public/highlighter/ZeroClipboard.swf" loop="false" menu="false" quality="best" bgcolor="#ffffff" width="16" height="16" name="ZeroClipboardMovie_8" align="middle" allowscriptaccess="always" allowfullscreen="false" type="application/x-shockwave-flash" pluginspage="http://www.macromedia.com/go/getflashplayer" flashvars="id=8&width=16&height=16" wmode="transparent"></div></span><span data-mod="popu_169"> <a href="#" class="PrintSource" title="print" onclick="dp.sh.Toolbar.Command('PrintSource',this);return false;">print</a></span><a href="#" class="About" title="?" onclick="dp.sh.Toolbar.Command('About',this);return false;">?</a></div></div><ol start="1" class="dp-c"><li class="alt"><span><span class="keyword">var</span><span> webTest = </span><span class="keyword">function</span><span> (test, callback) { </span></span></li><li class=""><span> <span class="keyword">var</span><span> soapMessage = </span><span class="string">'<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:bs="http://inter.hs.com/">'</span><span> </span></span></li><li class="alt"><span> + <span class="string">'<soapenv:Header/>'</span><span> </span></span></li><li class=""><span> + <span class="string">'<soapenv:Body>'</span><span> </span></span></li><li class="alt"><span> + <span class="string">'<bs:test>'</span><span> </span></span></li><li class=""><span> + <span class="string">'<para>'</span><span> + test + </span><span class="string">'</para>'</span><span> </span></span></li><li class="alt"><span> + <span class="string">'</bs:test>'</span><span> </span></span></li><li class=""><span> + <span class="string">'</soapenv:Body>'</span><span> </span></span></li><li class="alt"><span> + <span class="string">'</soapenv:Envelope>'</span><span>; </span></span></li><li class=""><span> PostData(soapMessage, callback); </span></li><li class="alt"><span>} </span></li></ol></div><pre class="javascript" name="code" style="display: none;">var webTest = function (test, callback) {
var soapMessage = '<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:bs="http://inter.hs.com/">'
+ '<soapenv:Header/>'
+ '<soapenv:Body>'
+ '<bs:test>'
+ '<para>' + test + '</para>'
+ '</bs:test>'
+ '</soapenv:Body>'
+ '</soapenv:Envelope>';
PostData(soapMessage, callback);
}
后台代码:
- @Override
- public String test(String str) {
- List<UserInfo> list = new ArrayList<UserInfo>();
- UserInfo ui = new UserInfo();
- ui.setName("tom");
- ui.setAge(22);
- ui.setSex("男");
- ui.setAddress("陕西西安");
- list.add(ui);
- JSONObject ja = JSONObject.fromObject(list);//将list包装成json传递给前台
- return ja.toString();
- }
@Override
public String test(String str) {
List<UserInfo> list = new ArrayList<UserInfo>();
UserInfo ui = new UserInfo();
ui.setName("tom");
ui.setAge(22);
ui.setSex("男");
ui.setAddress("陕西西安");
list.add(ui);
JSONObject ja = JSONObject.fromObject(list);//将list包装成json传递给前台
return ja.toString();
}
运行结果:
第二种情况,接收对象数据返回:
js代码:
- <script>
- $("div.submit_op>input").click(function(){
- var uname = $("#acount").val();
- var pass = $("#pass").val();
- if(uname==""){
- alert("请输入用户名");
- }else if(pass == ""){
- alert("请输入密码");
- }else{
- ecLogin(uname,pass,function(result){//这一步可以堪称是ajax请求后台,result是返回结果
- if(result == "false"){
- alert("用户名或者密码错误");
- }else{
- var userinfo = eval(result)[0];//当是单个对象时,虽不用循环遍历,但是需要【0】取</span>
- alert(userinfo.user_reg_id);
- }
- });
- }
- })
- </script>
<script>
$("div.submit_op>input").click(function(){
var uname = $("#acount").val();
var pass = $("#pass").val();
if(uname==""){
alert("请输入用户名");
}else if(pass == ""){
alert("请输入密码");
}else{
ecLogin(uname,pass,function(result){//这一步可以堪称是ajax请求后台,result是返回结果
if(result == "false"){
alert("用户名或者密码错误");
}else{
var userinfo = eval(result)[0];//当是单个对象时,虽不用循环遍历,但是需要【0】取</span>
alert(userinfo.user_reg_id);
}
});
}})
</script>
- /**
- * 登录接口
- * @param phone 手机号
- * @param pass 密码
- * @param callback func 回调函数,原型function(string) 其中参数为登录之后的用户对象或者null
- * @returns
- */
- var ecLogin = function (phone, pass, callback) {
- alert(phone);
- var soapMessage = '<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:bs="http://inter.hs.com/">'
- + '<soapenv:Header/>'
- + '<soapenv:Body>'
- + '<bs:login>'
- + '<phone>' + phone + '</phone>'
- + '<pass>' + pass + '</pass>'
- + '</bs:login>'
- + '</soapenv:Body>'
- + '</soapenv:Envelope>';
- PostData(soapMessage, callback);
- }
/**
* 登录接口
* @param phone 手机号
* @param pass 密码
* @param callback func 回调函数,原型function(string) 其中参数为登录之后的用户对象或者null
* @returns
*/
var ecLogin = function (phone, pass, callback) {
alert(phone);
var soapMessage = '<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:bs="http://inter.hs.com/">'
+ '<soapenv:Header/>'
+ '<soapenv:Body>'
+ '<bs:login>'
+ '<phone>' + phone + '</phone>'
+ '<pass>' + pass + '</pass>'
+ '</bs:login>'
+ '</soapenv:Body>'
+ '</soapenv:Envelope>';
PostData(soapMessage, callback);
}
后台代码:
- @Override
- public String login(String strPhone, String password) {
- String str = "false";
- Connection conn = DBManager.getConnection();
- String sql = "select * from tb_user_login where user_phone = ? and user_pwd = ?";
- PreparedStatement ps = null;
- ResultSet rs = null;
- try {
- ps = conn.prepareStatement(sql);
- ps.setString(1, strPhone);
- ps.setString(2, password);
- rs = ps.executeQuery();
- while (rs.next()){
- UserLogin ul = new UserLogin();
- ul.setUser_reg_id(rs.getString(1));
- ul.setUser_phone(rs.getString(2));
- JSONObject ja = JSONObject.fromObject(ul);
- str = ja.toString();
- }
- } catch (SQLException e) {
- e.printStackTrace();
- }
- return str;
- }
@Override
public String login(String strPhone, String password) {
String str = "false";
Connection conn = DBManager.getConnection();
String sql = "select * from tb_user_login where user_phone = ? and user_pwd = ?";
PreparedStatement ps = null;
ResultSet rs = null;
try {
ps = conn.prepareStatement(sql);
ps.setString(1, strPhone);
ps.setString(2, password);
rs = ps.executeQuery();
while (rs.next()){
UserLogin ul = new UserLogin();
ul.setUser_reg_id(rs.getString(1));
ul.setUser_phone(rs.getString(2));
JSONObject ja = JSONObject.fromObject(ul);
str = ja.toString();
}
} catch (SQLException e) {
e.printStackTrace();
}
return str;
}
如有不对,还请各位大牛指正!
ajax接收json数据到js解析的更多相关文章
- 浅析ajax请求json数据并用js解析(示例分析)
这应该是每个web开发的人员都应该掌握的基础技术,需要的朋友可以参考下 自从接触了jquery就喜欢上了前端开发,而且深深感受到了前端开发的强大与重要之处.同时也想为asp.net鸣不平,事实上asp ...
- ThinkPHP中使用ajax接收json数据的方法
本文实例讲述了ThinkPHP中使用ajax接收json数据的方法.分享给大家供大家参考.具体分析如下: 这里通过ThinkPHP+jquery实现ajax,扩展了下,写了个查询,前台代码如下: 首先 ...
- ajax 接收json数据的进一步了解
var url = "../searchclasses"; $.ajax({ url: url, type: "post", dataType: "j ...
- Ajax接收Json数据,调用template模板循环渲染页面的方法
一. 后台接口吐出JSON数据 后台php接口中,需要写三个部分: 1.1 开头header规定数据格式: header("content-type:application/json;cha ...
- Ajax传递json数据简介和一个需要注意的小问题
Ajax传递json数据 Ajax操作与json数据格式在实际中的运用十分广泛,本文为大家介绍一个两者相结合的小案例: 项目结构 我们新建一个Django项目,在里面创建一个名为app01的应用: p ...
- 通过js获取前台数据向一般处理程序传递Json数据,并解析Json数据,将前台传来的Json数据写入数据库表中
摘自:http://blog.csdn.net/mazhaojuan/article/details/8592015 通过js获取前台数据向一般处理程序传递Json数据,并解析Json数据,将前台传来 ...
- AJAX如何接收JSON数据
简介 在我们了解如何使用AJAX返回JSON数据的时候要先明白下列几点 1. JSON如何来表示对象的 2. JSON如何来表示数组的 var object = { "labId" ...
- js进阶ajax读取json数据(ajax读取json和读取普通文本,和获取服务器返回数据(链接)都是一样的,在url处放上json文件的地址即可)
js进阶ajax读取json数据(ajax读取json和读取普通文本,和获取服务器返回数据(链接)都是一样的,在url处放上json文件的地址即可) 一.总结 ajax读取json和读取普通文本,和获 ...
- Jquery的$.ajax、$.get、$.post发送、接收JSON数据及回调函数用法
平时研究代码时,经常会遇到AJAX的相关用法,做项目时才真正体会到Ajax的强大之处(与服务器数据交互如此之便捷,更新DOM节点而不用刷新整个页面),以及运用的频繁程度.今天整理了一下自己之前没搞清楚 ...
随机推荐
- office doc/xls/ppt 和 docx/xlsx/pptx 区别
经同事告诉,今天才真正明白两都区别: doc/xls/ppt 是office2007以前的扩展名: docx/xlsx/pptx 是office2007版本及以后的扩展名,是基于xml的文件格式,x ...
- 自定义Image HtmlHelper
public static void Image(this HtmlHelper helper, string src, string alt = null, object htmlAttribute ...
- 外文翻译 《How we decide》赛场上的四分卫
本书导言翻译 为了能看懂这一章,先做了如下的功课: 百度百科 四分卫 国家橄榄球联盟中文站 在2002年超级碗赛场上,比赛的时间仅剩80秒,两队比分持平.新英格兰爱国者队于17码的位置执球,他们的对手 ...
- ReactJS-3-组件生命周期
简介 普通的UI应用生命周期一般包括Birth, Growth, Death, React中Component的生命周期也是如此,这是一个持续的过程,贯穿整个应用的生命历程. 阶段 1.mountin ...
- Elasticsearch--集群管理_时光机&监控
目录 Elasticsearch时光机 创建快照存储库 清理:删除旧的快照 监控集群状态和健康度 集群健康度API 索引统计API 状态API 节点信息API 节点统计API 集群状态API 挂起任务 ...
- php中 mysql 插入特殊字符(手机端的emoji表情)出现异常
今天在用mysql存储从微信服务器拉来的数据,出现插入数据异常,报 Incorrect string value: '\xF0\x9F\x98\x97\xF0\x9F 的错误. 最终在网上查了一下,有 ...
- leetcode_951. Flip Equivalent Binary Trees_二叉树遍历
https://leetcode.com/problems/flip-equivalent-binary-trees/ 判断两棵二叉树是否等价:若两棵二叉树可以通过任意次的交换任意节点的左右子树变为相 ...
- 正则表达式,匹配查找函数(preg_match_all)flags参数对比
格式: int preg_match_all ( string pattern, string subject, array matches [, int flags] ) 参数 flags 选项有以 ...
- Duplicate fragment name ERROR Jetty Maven Plugin
http://stackoverflow.com/questions/5802096/duplicate-fragment-name-error-jetty-maven-plugin 4down vo ...
- 05CSS链接
CSS链接 链接的四种状态: • a:link - 普通的.未被访问的链接 • a:visited - 用户已访问的链接 • a:hover - 鼠标指针位于链接的上方 • a:active ...