Java對象和集合與Json字串之間的互相轉換,java對象json字串

來源:互聯網
上載者:User

Java對象和集合與Json字串之間的互相轉換,java對象json字串

        總結一下利用Json相關jar包實現Java對象和集合與Json字串之間的互相轉換:

        1、建立的User類:

package com.ghj.packageofdomain;public class User {private int id;private String name;private String gender;public User() {}public User(int id, String name, String gender) {this.id = id;this.name = name;this.gender = gender;}public int getId() {return id;}public void setId(int id) {this.id = id;}public String getName() {return name;}public void setName(String name) {this.name = name;}public String getGender() {return gender;}public void setGender(String gender) {this.gender = gender;}@Overridepublic String toString() {return "id=" + id + ",name=" + name + ",gender=" + gender;}}
        2、Java對象和集合與Json字串之間的互相轉換:
        i、Java對象與Json字串之間的互相轉換:

package com.ghj.packageoftest;import net.sf.json.JSONObject;import com.ghj.packageofdomain.User;public class Test{public static void main(String[] args) {System.out.println(objectToJsonString());jsonStringToObject(objectToJsonString());}/** * 將Java對象轉換為Json字串 *  * @author 高煥傑 */static String objectToJsonString(){JSONObject jsonObject = JSONObject.fromObject(new User(1, "張三", "男"));    return jsonObject.toString();}/** * 將Json字串轉換為Java對象 *  * @author 高煥傑 */static void jsonStringToObject(String jsonString){JSONObject jsonObject = JSONObject.fromObject(jsonString);User user = (User)JSONObject.toBean(jsonObject, User.class);System.out.println(user);}}
        ii、Java集合與Json字串之間的互相轉換:
package com.ghj.packageoftest;import java.util.ArrayList;import java.util.List;import net.sf.json.JSONArray;import com.ghj.packageofdomain.User;public class Test{public static void main(String[] args) {System.out.println(collectionToJsonString());jsonStringToCollection(collectionToJsonString());}/** * 將Java集合轉換為Json字串 *  * @author 高煥傑 */static String collectionToJsonString(){List<User> userList = new ArrayList<User>();userList.add(new User(1, "張三", "男"));userList.add(new User(2, "李四", "女"));userList.add(new User(3, "王五", "男"));JSONArray jsonArray = JSONArray.fromObject(userList);    return jsonArray.toString();}/** * 將Json字串轉換為Java集合 *  * @author 高煥傑 */static void jsonStringToCollection(String jsonString){JSONArray jsonArray = JSONArray.fromObject(jsonString);@SuppressWarnings("unchecked")List<User> userList = (List<User>)JSONArray.toCollection(jsonArray, User.class);for (User user : userList) {System.err.println(user);}}}
        注意:

        1、上面User類不僅有有參建構函式還有無參建構函式,有人可能會問為什麼要有無參的建構函式呢?呵呵呵,為了方面構造User執行個體,添加了有參數的建構函式,可是正因為有了這個建構函式才必須要添加無參建構函式,否則會出現下面異常:

        如果不嫌構造User執行個體繁雜完全可以去掉這兩個建構函式的——其實這種情況下無參建構函式還是存在的,呵呵呵,總之一句話要實現Json字串轉化為Java執行個體或集合則相關類中要有無參的建構函式。

        2、 Java對象和集合與Json之間的互相轉換需要藉助相應的jar包實現,這些jar包可以在Demo中擷取到

        【0分下載Demo


java json-lib包 怎將json字串轉換為包含複雜類型集合的Bean對象

你需要在JSONObject.toBean的時候把list的元素類型當成參數傳進去。
代碼如下,你肯定看得懂
Map<String, Class> classMap = new HashMap<String, Class>();
classMap.put("list", B.class);
A j = (A) JSONObject.toBean(json, A.class,classMap);
 
java中,json格式的字串轉換成對象

要使程式可以運行必須引入JSON-lib包,JSON-lib包同時依賴於以下的JAR包:
1.commons-lang.jar
2.commons-beanutils.jar
3.commons-collections.jar
4.commons-logging.jar
5.ezmorph.jar
6.json-lib-2.2.2-jdk15.jar
 

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.