1. 程式人生 > >JSON — Java與JSON資料互轉

JSON — Java與JSON資料互轉

轉換時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中內嵌屬性的支援較好。
  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進行轉換