json与js对象的一些对比与区别

来源:互联网 发布:帝国cms 附件绑定域名 编辑:程序博客网 时间:2024/06/10 22:48
Javascript代码  收藏代码
  1. 文本生成json对象,必须在外面加一对括号。  
  2.   
  3. 因为JSON 是 javascript 的一个子集,所以,在javascript 中使用JSON是非常简单的。  
  4.       
  5.       
  6. js 代码  
  7.    
  8. var myJSONObject = {"bindings": [     
  9.         {"ircEvent""PRIVMSG""method""newURI""regex""^http://.*"},     
  10.         {"ircEvent""PRIVMSG""method""deleteURI""regex""^delete.*"},     
  11.         {"ircEvent""PRIVMSG""method""randomURI""regex""^random.*"}     
  12.     ]     
  13. };     
  14.   
  15. 在上面的例子中,我们创建了只包含一个成员 "bindings" 的一个对象,bindings 则包含了一个由3个对象组成的数组。这3个对象都包含3个成员:"ircEvent", "method""regex"。  
  16.   
  17. 在javascript 中, 成员可以通过“点号”来获取。  
  18. 比如:  
  19.   
  20. js 代码  
  21. myJSONObject.bindings[0].method     
  22.   
  23. 通过eval() 函数可以将JSON字符串转化为对象。  
  24.   
  25. js 代码  
  26. var myObject = eval('(' + myJSONtext + ')');     
  27.   
  28. eval 函数非常快,但是它可以编译任何 javascirpt 代码,这样的话就可能产生安全的问  
  29. 题。eval 的使用是基于传入的代码参数是可靠的假设的,有一些情况下,可能客户端是不可  
  30. 信任的。  
  31.   
  32. 如果基于安全的考虑的话,最好是使用一个 JSON 解析器。 一个 JSON 解析器将只接受   
  33. JSON 文本。所以是更安全的。  
  34.   
  35. js 代码  
  36.    
  37. var myObject = JSON.parse(myJSONtext, filter);     
  38.   
  39. 可选的 filter 参数将遍历每一个value key 值对, 并进行相关的处理。如:  
  40.   
  41.   
  42. js 代码  
  43. myData = JSON.parse(text, function (key, value) {          
  44.   
  45. return key.indexOf('date') >= 0 ? new Date(value) : value;    });    
  46.   
  47. stringifier 函数的作用跟 parse 相反, 用来将一个js对象转换为 JSON 文本。  
  48.   
  49. js 代码  
  50. var myJSONText = JSON.stringifier(myObject);   
  51.   
  52.   
  53.   
  54.   
  55.   
  56. //理解二号:  
  57. JSON (JavaScript Object Notation)一种简单的数据格式,比xml更轻巧。 JSON 是   
  58. JavaScript 原生格式,这意味着在 JavaScript 中处理 JSON 数据不需要任何特殊的 API  
  59.  或工具包。   
  60. JSON的规则很简单: 对象是一个无序的“‘名称/值’对”集合。一个对象以“{”(左括  
  61. 号)开始,“}”(右括号)结束。每个“名称”后跟一个“:”(冒号);“‘名称/值’  
  62.  对”之间使用“,”(逗号)分隔。具体细节参考http://www.json.org/json-zh.html  
  63.   
  64.   
  65. 举个简单的例子:  
  66.   
  67. js 代码  
  68. 1.function showJSON() {     
  69. 2.    var user =     
  70. 3.     {     
  71. 4.        "username":"andy",     
  72. 5.        "age":20,     
  73. 6.        "info": { "tel""123456""cellphone""98765"},     
  74. 7.        "address":     
  75. 8.             [     
  76. 9.                 {"city":"beijing","postcode":"222333"},     
  77. 10.                 {"city":"newyork","postcode":"555666"}     
  78. 11.             ]     
  79. 12.     }     
  80. 13.         
  81. 14.     alert(user.username);     
  82. 15.     alert(user.age);     
  83. 16.     alert(user.info.cellphone);     
  84. 17.     alert(user.address[0].city);     
  85. 18.     alert(user.address[0].postcode);     
  86. 19.}     
  87. 这表示一个user对象,拥有username, age, info, address 等属性。  
  88.   
  89. 同样也可以用JSON来简单的修改数据,修改上面的例子  
  90.   
  91. js 代码  
  92. 1.function showJSON() {     
  93. 2.    var user =     
  94. 3.     {     
  95. 4.        "username":"andy",     
  96. 5.        "age":20,     
  97. 6.        "info": { "tel""123456""cellphone""98765"},     
  98. 7.        "address":     
  99. 8.             [     
  100. 9.                 {"city":"beijing","postcode":"222333"},     
  101. 10.                 {"city":"newyork","postcode":"555666"}     
  102. 11.             ]     
  103. 12.     }     
  104. 13.         
  105. 14.     alert(user.username);     
  106. 15.     alert(user.age);     
  107. 16.     alert(user.info.cellphone);     
  108. 17.     alert(user.address[0].city);     
  109. 18.     alert(user.address[0].postcode);     
  110. 19.         
  111. 20.     user.username = "Tom";     
  112. 21.     alert(user.username);     
  113. 22.}     
  114. JSON提供了json.js包,下载http://www.json.org/json.js 后,将其引入然后就可以简单的使用object.toJSONString()转换成JSON数据。  
  115.   
  116. js 代码  
  117. 1.function showCar() {     
  118. 2.    var carr = new Car("Dodge""Coronet R/T", 1968, "yellow");     
  119. 3.     alert(carr.toJSONString());     
  120. 4.}     
  121. 5.    
  122. 6.function Car(make, model, year, color)        {     
  123. 7.     this.make   =   make;     
  124. 8.     this.model   =   model;     
  125. 9.     this.year   =   year;     
  126. 10.     this.color   =   color;     
  127. 11.}     
  128. 可以使用eval来转换JSON字符到Object  
  129.   
  130. js 代码  
  131. 1.function myEval() {     
  132. 2.    var str = '{ "name": "Violet", "occupation": "character" }';     
  133. 3.    var obj = eval('(' + str + ')');     
  134. 4.     alert(obj.toJSONString());     
  135. 5.}     
  136. 或者使用parseJSON()方法  
  137.   
  138. js 代码  
  139. 1.function myEval() {     
  140. 2.    var str = '{ "name": "Violet", "occupation": "character" }';     
  141. 3.    var obj = str.parseJSON();     
  142. 4.     alert(obj.toJSONString());     
  143. 5.}  
0 0
原创粉丝点击