`
canofy
  • 浏览: 821829 次
  • 性别: Icon_minigender_1
  • 来自: 北京、四川
社区版块
存档分类
最新评论

JSON知识

    博客分类:
  • ajax
阅读更多

eval可以将字符串生成语句执行,和SQL的exec()类似。 
eval的使用场合是什么呢?有时候我们预先不知道要执行什么语句,只有当条件和参数给时才知道执行什么语句,这时候eval就派上用场了。举个例子: 
我们要做一个function(),功能是输入网页中两个个对象的名称,然后程序就将这两个对象的值联接起来输出。 
function output(a,b) 

var tmpa,tmpb; 
tmpa=document.all.a.value; 
tmpb=document.all.b.value; 
document.write(tmpa+tmpb); 

output('input1','input2'); 
这样你执行的时候就会提示错误“document.all.a不是对象”以及“document.all.b不是对象”。原来 javascript把a和b当成对象名称了,怎样能让javascript把a里面的值作为对象名称呢?这时候就要用eval了,把代码改成这样: 
function output(a,b) 

var tmpa,tmpb; 
tmpa=eval("document.all."+a+".value"); 
tmpb=eval("document.all."+b+".value"); 
document.write(tmpa+tmpb); 

output('input1','input2'); 
这样javascript就会先取出a,b的值,然后和前面的document.all.以及后面的.value组合运行,于是就可以 
顺利取出input1和input2的值,我们的目的达到了。 


JSON简介

JSON是一种用JavaScript对象符号格式化文本的简单方法。与其它更为流行的面向对象设计技术不同的是,人们经常称它为面向数据工具。由于它使用编程结构,因此易于为人与机器进行阅读。

JSON旨在传送基于文本的数据,所以它不支持任何类型的二进制对象。基本上,它支持两种类型的数据结构:名称/值对集合(如对象)和有序数值列表(如数组)。下面的列表详细说明了JSON支持的数据元素:

  • Objects(对象):以大括号( {})开始并结束的对象。
  • Object members(对象成员):由以冒号(:)分隔的字符串和值组成的元素。成员之间用逗号(,)隔开。
  • Arrays(数组):数据用大括号定义。也就是说,它们以大括号({})开始并结束。数组由值构成,这些值位于大括号之中,不同值之间以逗号隔开。
  • Values(值):单独的值可能为字符串、数字、对象、或一个文字值,如真、假和零。字符串值位于双引号中,可能包含Unicode字符和反斜扛或转义字符。字符是一个单独的字符串。

简单是JSON的一个主要优势——它比与之对应的XML要简单得多。用一个显示JSON数据语法和格式化的例子就能清楚证明这一点。下面的代码片断使用JSON来建立一个网址数组:

{

"websites":[

"http://www.techrepublic.com/",

"http://www.cnet.com/",

http://www.news.com/

] }

要用XML方便地定义同样的数据,可能相当困难。

处理JSON数据

要应用JSON,你需要像处理XML一样对JSON格式的数据进行解析。

由于其设计简单,所以用JavaScript内置的eval()过程可以很方便地对JSON进行解析,如下面的代码片断所示:

testObject = eval('(' + json_data + ')');

 
用javascript玩json的一个例子

 
  <meta content="JavaScript" name="vs_defaultClientScript"> 
 <script>
 function jsontest()
 {
  //json
  var jsontext = '{"man":{"weight":"75kg","age":"24"},"ar":["1","2","3","4"]}';
  //解析json
  var aman = eval("("+jsontext+")");
  //取出json中的信息
  alert(aman.man.weight);
 }
 </script>
 
 
 
又如:
js 代码
 
  1. //转换为对象,其中有一个属性name  
  2. var myJSONtext = '{name: "123"}';  
  3. var obj = eval('(' + myJSONtext + ')');  
  4. //显示123  
  5. alert(obj.name);  
  6.   
  7. //转换为一个对象,其中有一个属性bindings, 它的值为一个数组,而数组中包含三个对象,  
  8. //每个对象含有属性ircEvent、method、regex  
  9. var myJSONObject = {"bindings": [  
  10.       {"ircEvent""PRIVMSG""method""newURI""regex""^http://.*"},  
  11.       {"ircEvent""PRIVMSG""method""deleteURI""regex""^delete.*"},  
  12.       {"ircEvent""PRIVMSG""method""randomURI""regex""^random.*"}  
  13.   ]  
  14. };  
  15. //显示newURI  
  16. alert(myJSONObject.bindings[0].method); 
  17.   
     
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics