大致说明介绍Json数据异常相关介绍

Json数据异常对象转化为jsonObject(类似dwr中对dwr.xml定义),对对象中的set/list只进行***层转化,再转化容易出现死循环(比如user对象含有roles,roles为role对象聚集。。。。。

所以解决这个异常方法就是在不需要串行化的属性的getter前加上Json数据异常, 就是@JSON(serialize=false) 一开始就写了一个简单的例子,来测试struts2+json,是没有问题的。但是后来,加入正式的项目中就出现问题,而后开始研究了一下!

 主要出错类型(部分代码): Json数据异常一种简单的数据格式,比xml更轻巧。 JSON 是 JavaScript 原生格式,这意味着在 JavaScript 中处理 JSON 数据不需要任何特殊的 API 或工具包。#t#

JSON的规则很简单: 对象是一个无序的“‘名称/值’对”集合。一个对象以“{”(左括号)开始,“}”(右括号)结束。每个“名称”后跟一个“:”(冒号);“‘名称/值’ 对”之间使用“,”(逗号)分隔。具体细节参考。。。。。。。。

举个简单的例子:

 
 
  1. function showJSON() {      
  2.     var user =       
  3.     {       
  4.         "username":"andy",      
  5.         "age":20,      
  6.         "info": { "tel": "123456", "cellphone": "98765"},      
  7.         "address":      
  8.             [      
  9.                 {"city":"beijing","postcode":"222333"},      
  10.                 {"city":"newyork","postcode":"555666"}      
  11.             ]      
  12.     }      
  13.           
  14.     alert(user.username);      
  15.     alert(user.age);      
  16.     alert(user.info.cellphone);      
  17.     alert(user.address[0].city);      
  18.     alert(user.address[0].postcode);      
  19. }     

这表示一个user对象,拥有username, age, info, address 等属性。同样也可以用JSON来简单的修改数据,修改上面的例子。

 
 
  1. function showJSON() {      
  2.     var user =       
  3.     {       
  4.         "username":"andy",      
  5.         "age":20,      
  6.         "info": { "tel": "123456", "cellphone": "98765"},      
  7.         "address":      
  8.             [      
  9.                 {"city":"beijing","postcode":"222333"},      
  10.                 {"city":"newyork","postcode":"555666"}      
  11.             ]      
  12.     }      
  13.           
  14.     alert(user.username);      
  15.     alert(user.age);      
  16.     alert(user.info.cellphone);      
  17.     alert(user.address[0].city);      
  18.     alert(user.address[0].postcode);      
  19.           
  20.     user.username = "Tom";      
  21.     alert(user.username);      
  22. }   

Json数据异常提供了json.js包,下载http://www.json.org/json.js 后,将其引入然后就可以简单的使用object.toJSONString()转换成JSON数据。

THE END