JSON — Java與JSON資料互轉
阿新 • • 發佈:2019-01-02
轉換時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包轉換時,
轉換時問題:
-
如果某個Bean中存在存放陣列的Map屬性,則使用org.json包中的JSONObject直接封裝時得不到正確的JSON,要用JSONArray對陣列進行封裝處理,否則為轉換JavaScript中的空的物件{},但能使用json-lib包很好地解決這一問題
兩種包的比較:
- json-lib包比org.json要易使用些,至少沒有煩人的JSONExcetipn捕獲異常了。
- json-lib對Bean的支援比org.json要強,特別是對bean中內嵌屬性的支援較好。
- commons-beanutils-1.8.0.jar
- commons-collections-3.2.1.jar
- commons-lang-2.4.jar
- commons-logging-1.1.1.jar
- ezmorph-1.0.6.jar
- json-lib-2.3-jdk15.jar
- xom-1.2.2.jar
- 例項所用到的三個Bean