2013-11-04 48 views
1

我試圖使用序列傑克遜庫下面的代碼GAccount物體的下面的ArrayList:序列化利用傑克遜ObjectMapper

List<Gaccount> gAccounts; 
ObjectMapper mapper=new ObjectMapper(); 
json=mapper.writeValueAsString(gAccounts); 

然而,我注意到,只有編號和名稱字段序列化,但不是性能。對不起,我是傑克遜圖書館的新手。我必須手動序列化該字段嗎?

package in.co.madhur.ganalyticsdashclock; 

import java.util.ArrayList; 
import java.util.List; 

public class GAccount 
{ 
    private String Id; 
    private String Name; 
    private List<GProperty> properties=new ArrayList<GProperty>(); 

    public GAccount(String Id, String Name) 
    { 
     this.Id=Id; 
     this.Name=Name; 
    } 

    public String getName() 
    { 
     return Name; 
    } 
    public void setName(String name) 
    { 
     Name = name; 
    } 
    public String getId() 
    { 
     return Id; 
    } 
    public void setId(String id) 
    { 
     Id = id; 
    } 

    List<GProperty> getProperties() 
    { 
     return properties; 
    } 

    void setProperties(List<GProperty> properties) 
    { 
     this.properties = properties; 
    } 

    @Override 
    public String toString() 
    { 
     return Name; 
    } 

} 
+0

讓他們公開方法 – tom

+0

ID和名稱都沒有公開過 –

+0

它使用自己的干將。見下面的答案。 – tom

回答

3

默認能見度是使用所有公共getter方法和所有的公共屬性。如果你讓這個吸氣劑:

public List<GProperty> getProperties() 

它應該工作。

您還可以改變自動檢測默認值,但它是矯枉過正這裏。有關更多信息,請參見http://www.cowtowncoder.com/blog/archives/2011/02/entry_443.html