json简单介绍:
JSON---JavaScript Object Notation (javascript数据对象表示)。
和xml,txt,word,excel一样是一种数据存储方式,但是json以简洁,方便,快速而鹤立鸡群!
json是以键值对的形式存储数据的,有点像哈希表一样
json适用的语言:貌似是语言都能用
json很面向对象
----------------------------------------------------------------------------------------------------------------------------------
javascript中使用json:
因为json是javascript中的原生格式 就像我们使用java jdk里面涵盖了java为我们提供的类一样,同样浏览器里面定义了解析json的方式,哈哈 不用导入js包什么的很爽吧!
一、json在javascript使用实例
例一:
Js代码
function swapOne(){
var s_json={"UserID":11, "Name":"Truly", "Email":"
[email protected]"};
alert(s_json.UserID); //或者 alert(s_json["userID"]);
}
输出:11
例二:
Java代码
function swapOne(){
var s_json={"UserID":11, "Name":{"FirstName":"Truly","LastName":"Zhu"}, "Email":"zhuleipro◎hotmail.com"};
alert(s_json.Name.FirstName);//或者alert(s_json["Name"].FirstName);//或alert(s_json["Name"]["FirstName"]);
}
输出:Truly
例三:
Java代码
function swapOne(){
var s_json=[
{"UserID":11, "Name":{"FirstName":"Truly1","LastName":"Zhu"}, "Email":"zhuleipro◎hotmail.com"},
{"UserID":12, "Name":{"FirstName":"Truly2","LastName":"Zhu"}, "Email":"zhuleipro◎hotmail.com"},
{"UserID":13, "Name":{"FirstName":"Truly3","LastName":"Zhu"}, "Email":"zhuleipro◎hotmail.com"},
{"UserID":14, "Name":{"FirstName":"Truly4","LastName":"Zhu"}, "Email":"zhuleipro◎hotmail.com"},
{"UserID":15, "Name":{"FirstName":"Truly5","LastName":"Zhu"}, "Email":"zhuleipro◎hotmail.com"},
];
alert(s_json[0].Name.FirstName);
}
输出:Truly1
其实json就像我们在java程序中定义的实体类一样,不过以两一种方式显示出来罢了!我们使用它的值的时候直接用点(或者使用像上面的s_json["Name"]["FirstName"]这样的方式) 完全可以把每个{}当做一个对象来对待;
ajax 中使用json进行数据交换:
json我感觉他的主要作用就是进行服务器和客户端数据的传输 所以说在ajax中使用才是关键:
Java代码
<script language="javascript" type="text/javascript">
//input 文本框联想
function checkword(input_text) {
var wordvalue=input_text.value;
if(wordvalue==null||wordvalue==""){
return;
}
//创建XMLHttpRequest对象
var selectvalue="";
var xmlhttp;
if(window.XMLHttpRequest){// code for IE7+, Firefox, Chrome, Opera, Safari
xmlhttp=new XMLHttpRequest();
}else{// code for IE6, IE5
xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
}
xmlhttp.onreadystatechange=function(){
if (xmlhttp.readyState==4 && xmlhttp.status==200){
selectvalue=xmlhttp.responseText;
//在这里已经获取到值了
<span style="color: #ff0000;"> var s_json_t=eval(select_value);
alert(s_json_t[0].UserID);
</span> }
}
//alert("create_select_value.jsp?mc="+input_text.value+"&t="+Math.random());
xmlhttp.open("POST","create_select_value.jsp?t="+Math.random(),true);
xmlhttp.send();
}
</script>
Java代码
上图中xmlhttp.responseText 为返回数据:(我返回的是String类型的)返回后再在javascript里面处理,
这样一方面耗费的是客户端的资源,另一方面比在服务器端处理更快捷,因为在传输过程中json格式总比字符串
耗费资源吧!<img src="/images/smiles/icon_biggrin.gif" alt="">
这样json在javascript里面基础用法也就差不多了!
现在简单介绍一下:eval 因为我刚开始看的时候搞的蛋很疼!
看javascript手册是这样写的:
-----------------开始------------------------------------------------------------------------------------------------------------定义和用法
eval() 函数可计算某个字符串,并执行其中的的 JavaScript 代码。
语法
eval(string)
参数 描述
string 必需。要计算的字符串,其中含有要计算的 JavaScript 表达式或要执行的语句。
返回值
通过计算 string 得到的值(如果有的话)。
-----------------结束-----------------------------------------------------------------------------------------------------------
例一:
Java代码
<script language = "javascript" type = "text/javascript">
var values = eval("2+3");
alert(values);
</script>
Java代码
输出:5
例二:
Java代码
<script type = "text/javascript">
function swapOne(){
var the_image = prompt("请输入要更换图片的name","");
var the_image_object = eval("window.document."+the_image+".src='http://www.iteye.com/upload/logo/user/104680/d31fee47-ff1a-3e79-860b-8e200be93bcf.jpg?1242632171'");
// the_image_object.src="http://www.iteye.com/upload/logo/user/104680/d31fee47-ff1a-3e79-860b-8e200be93bcf.jpg?1242632171";
}
</script>
明显可以看出eval的执行过程了!
他都是先将括号里面的值 完全的转换成字符串,然后为其去掉双引号罢了.......(不知道这样理解对不对!)!
Java代码
<script language = "javascript" type = "text/javascript">
function swapOne(){
var s_json='[{"UserID":11, "Name":{"FirstName5":"Truly1","LastName":"Zhu"}, "Email":"zhuleipro◎hotmail.com"},{"UserID":12, "Name":{"FirstName4":"Truly2","LastName":"Zhu"}, "Email":"zhuleipro◎hotmail.com"},{"UserID":13, "Name":{"FirstName3":"Truly3","LastName":"Zhu"}, "Email":"zhuleipro◎hotmail.com"},{"UserID":14, "Name":{"FirstName2":"Truly4","LastName":"Zhu"}, "Email":"zhuleipro◎hotmail.com"},{"UserID":15, "Name":{"FirstName1":"Truly5","LastName":"Zhu"}, "Email":"zhuleipro◎hotmail.com"},]';
var s_json_t=eval(s_json);
alert(s_json_t[0].UserID);
}
</script>