用JavaScript获取Json格式的用户信息,并利用模型展示出来

用AJAX从服务器获取到的信息通常都是对象(相当于Objective-C中的字典)的形式,我们不仅仅要获得对象,还要把对象对应的键和值展示出来。这里简单地介绍一下:

这里涉及到的有html5、JavaScript、AJAX。

注:本人刚使用CSDN博客,还不会排版,以后会慢慢改进。希望可以帮助到大家,有不足之处,希望大家多多指教!

<! DOCTYPE  html>       

<html>

<head>

<metacharset="utf-8">

<title>获取用户信息</title>      // 头部信息

</head>

<body>

<p>请输入用户名,来得到用户信息

<formname="myForm">            // 用表单来写文本框,当然可以用其他方法

用户名:<inputtype="text"name="fname">

</form>

<buttononclick="submit()">提交</button>

<hr>                            // 水平分割线

<div>

<pid="test">用户信息:</p>      // 此处用于展示用户信息

</div>

<script>

function  person(userId,idsUserId,idsGroupId,idsAppId,idsAppName,userName,password,lastName,

                        firstName,email)                     //根据服务器返回的对象来创建person,并赋值

{

this.userId=userId;

this.idsUserId=idsUserId;

this.idsGroupId=idsGroupId;

this.idsAppId=idsAppId;

this.idsAppName=idsAppName;

this.userName=userName;

this.password=password;

this.lastName=lastName;

this.firstName=firstName;

this.email=email;

}

function submit()                    //提交按钮的点击事件

{

varxdocument.forms["myForm"]["fname"].value;    //获取表单中文本框中的值

if(x==null || =="")

{

alert("没有填写用户名");

return false;

}

else

{

注:以下是两中方式的数据,一个是本地的(注释掉的部分),一个是从网络上获取的(未注释掉得部分)。两种数据的内容是一样的


// 以下是本地数据

// var userData = {"able":"T","depName":"","description":"","email":"meihua@qq.com",

              "firstName":"梅","honour":"0","idCard":"","idsAppId":333333,

"idsAppName":"newmediainternal","idsGroupId":222222,"idsUserId":111111,

"jobNumber":"323r5366453453",

"lastName":"花","password":"a123456","userId":1733,"userName":"meihua"};

// user = new person(userData.userId,userData.idsUserId,userData.idsGroupId,

userData.idsAppId,userData.idsAppName,userData.userName,userData.password,

userData.lastName,userData.firstName,userData.email);

// var txtkey = "";

// var txtvalue = "";

// for (var keys in user)     // 遍历user

 {

txtkey =txtkey + i;   //键相连

txtvalue =txtvalue + user[i];   //值相连

// values = user[keys];

//

var para = document.createElement("p");   // 创建p标签

//var nod = document.createTextNode(keys+':'+values);   //创建文本节点

//para.appendChild(nod);     // 把文本节点添加到p标签上

//

// var ele = document.getElementById("test");

//ele.appendChild(para);       // 在test后添加新创建的p标签

 //

// }

// 以下是从网络获取的数据

varxmlhttp"";

if(window.XMLHttpRequest)

{

xmlhttp = new XMLHttpRequest();  // IE7+, Firefox, Chrome, Opera, Safari

}

else

{

xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");  // IE6, IE5

}

xmlhttp.onreadystatechange=function()   

// onreadystatechange表示服务器响应已做好被处理的准备时所执行的任务

{

if(xmlhttp.readyState==&&xmlhttp.status== 200)

// readyState 等于 4 且status为 200 时,表示响应已就绪:

{


varuserDataeval('('+xmlhttp.responseText+')');

// 把得到的xmlhttp.responseText文本左右都添加上括号,再用eval()转换一下,否则文本不能正常显示。除了eval(),也可以用其他方法。

user = newperson(userData.userId,userData.idsUserId,

userData.idsGroupId,userData.idsAppId,userData.idsAppName,userData.userName,userData.password,userData.lastName,

userData.firstName,userData.email);

// 把得到的内容通过person函数赋值,得到新的对象user


// var txtkey = "";

// var txtvalue = "";

for(varkeys inuser)    // 遍历user

{

// txtkey =txtkey+ i;   //键相连

// txtvalue =txtvalue + user[i];   //值相连

values user[keys];


varparadocument.createElement("p");    // 创建p标签

varnoddocument.createTextNode(keys+':'+values);//创建文本节点

para.appendChild(nod);      // 把文本节点添加到p标签上

var ele document.getElementById("test");

ele.appendChild(para);      // 在test后添加新创建的p标签

}

}

}

xmlhttp.open("GET","http://10.255.20.54:8080/tms/api/userApi!getUserByName.action?username="+x);    // 设置请求信息。url中拼接上文本框中的值

xmlhttp.send();    // 向服务器发送请求

}

}

</script>

</body>

</html>

在文本框中输入:meihua,点击提交按钮。效果如下:




  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值