2016-08-21 47 views
0

我有一个自定义对象的ArrayList。每个这些对象都有另一个自定义对象的数组列表。然后这些自定义对象的第二级具有另一个自定义对象的阵列列表。将自定义对象的ArrayList转换为JSON

这是类层次的样子

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对象

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); 

但似乎他们一个字符串的ArrayList只传递工作。

+0

试试这个:https://github.com/google/gson – Riad

+0

这将是有用的知道为什么问题已被downvoted – swati

回答

0
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); 
      }