繁体   English   中英

将自定义对象的ArrayList转换为JSON

[英]Convert ArrayList of custom objects to JSON

我有一个自定义对象的ArrayList。 每个对象都有另一个自定义对象的数组列表。 然后,这些第二级自定义对象具有另一个自定义对象的数组列表。

这是类层次结构的样子

public class Undle {
    private String undleStatus; 
    private ArrayList<ArcelFolder> arcelFolders;

    public ArrayList<ArcelFolder> getArcelFolders() {
        return arcelFolders;
    }
    public void setArcelFolders(ArrayList<ArcelFolder> arcelFolders) {
        this.arcelFolders = arcelFolders;
    }
    //Other getter and setters
}


public class ArcelFolder {
    private ArrayList<ArcelDocument> arcelDocuments;
    private String arcelStatus;
    public String getArcelStatus() {
        return arcelStatus;
    }
    public void setArcelStatus(String arcelStatus) {
        this.arcelStatus = arcelStatus;
    }
    public ArrayList<ArcelDocument> getArcelDocuments() {
        return arcelDocuments;
    }
    public void setArcelDocuments(ArrayList<ArcelDocument> arcelDocuments) {
        this.arcelDocuments = arcelDocuments;
    }
}

public class ArcelDocument {
    private String gain;

    public String getGain() {
        return gain;
    }
    public void setGain(String gain) {
        this.gain = gain;
    }
}

我有一个Undle对象的数组列表

ArrayList<Undle> undleList = new ArrayList<Undle>();
// Create objects of ArcelFolder and ArcelDocument
// Add ArcelDocument list to ArcelFolder
// Add ArcelFolder list to Undle arraylist

我想将Undle ArrayList转换为JSON。 如何弄平bean的这种层次结构并将其放入JSON中?

我尝试做类似的事情

org.json.simple.JSONObject resultObj = new JSONObject(undleList);

org.json.simple.JSONArray arr = new JSONArray(undleList);

但是似乎只有在传递String ArrayList时它们才起作用。

Gson gson = new Gson();
             Type type = new TypeToken<List<Bundle>>() {}.getType();
             String json = gson.toJson(bundleList, type);
             System.out.println(json);
             List<Bundle> fromJson = gson.fromJson(json, type);

             for (Bundle bundle : fromJson) {
                     System.out.println(bundle);
             }

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM