JSON — Java与JSON数据互转

来源:互联网 发布:域名备案查询接口 编辑:程序博客网 时间:2024/05/23 00:10

 

转换时Bean所要求的:

  • 被转换的Bean必需是public的。
  • Bean被转换的属性一定要有对应的get方法,且一定要是public的。
  • Bean中不能用引用自身的this的属性,否则运行时出现et.sf.json.JSONException: There is a cycle in the hierarchy!异常
  • json-lib包转换时,不能以null为键名,否则运行报net.sf.json.JSONException:java.lang.NullPointerException:JSON keys must not be null nor the 'null' string.
  • json-lib包转换时, 转换成XML元素key的名字要符合XML元素标签的命名规则,否则会报nu.xom.IllegalNameException: NCNames cannot start with the character 25异常

转换时问题:

  • 如果某个Bean中存在存放数组的Map属性,则使用org.json包中的JSONObject直接封装时得不到正确的JSON,要用JSONArray对数组进行封装处理,否则为转换JavaScript中的空的对象{},但能使用json-lib包很好地解决这一问题

两种包的比较:

  • json-lib包比org.json要易使用些,至少没有烦人的JSONExcetipn捕获异常了。
  • json-lib对Bean的支持比org.json要强,特别是对bean中内嵌属性的支持较好。

json-lib依赖包:

  1.   commons-beanutils-1.8.0.jar
  2.   commons-collections-3.2.1.jar
  3.   commons-lang-2.4.jar
  4.   commons-logging-1.1.1.jar
  5.   ezmorph-1.0.6.jar
  6.   json-lib-2.3-jdk15.jar
  7.   xom-1.2.2.jar
  • 实例所用到的三个Bean

 

 

 

Java代码 
 
 
 
 
使用org.json进行转换
 

 

原创粉丝点击