六狼论坛

 找回密码
 立即注册

QQ登录

只需一步,快速开始

新浪微博账号登陆

只需一步,快速开始

搜索
查看: 24|回复: 0

javascript中json的使用说明

[复制链接]

升级  41.33%

30

主题

30

主题

30

主题

秀才

Rank: 2

积分
112
 楼主| 发表于 2013-1-29 09:18:54 | 显示全部楼层 |阅读模式
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":"zhuleipro@hotmail.com"};  
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>
您需要登录后才可以回帖 登录 | 立即注册 新浪微博账号登陆

本版积分规则

快速回复 返回顶部 返回列表