2014-08-28 132 views
0

我米具有地图如下(从一个JSON形成)爪哇映射到Java对象

{office=null, basicFunc=Brokerage Documents, id=null, status=Good, rcvdDateTime=08/01/2013 01:48:25, orgUnit=5L9890327, numOfPg=null, ip=null, content=null, btchName=ONLINE UPLOAD, docTypeCde=20130801, rqstId=null, filNm={subrecord={subfiled1=[value1, value2]}}, docSizeBytes=null, docId=1234567, doctype=ConversionAgreement} 

和具有POJO如下

public class IDocument { 
    private String basicFunc; 
    private String doctype; 
    private String orgUnit;  
    @JsonDeserialize(as=Subrecord.class,contentAs=Subrecord.class) 
    private Subrecord filNm; 
    private String content; 

}

public class Subrecord {  
    private List<Subfiled1> subField1; 
    public List<Subfiled1> getSubField1() { 
     return subField1; 
    } 
    public void setSubField(List<Subfiled1> subField1) { 
     this.subField1 = subField1; 
    } 
} 

public class Subfiled1 { 
    private String value1; 
    private String value2; 

    public String getValue1() { 
     return value1; 
    } 
    public void setValue1(String value1) { 
     this.value1 = value1; 
    } 
    public String getValue2() { 
     return value2; 
    } 
    public void setValue2(String value2) { 
     this.value2 = value2; 
    } 
} 

我使用jackson将地图转换为IDocument对象,如下所示,

ObjectMapper mapper = new ObjectMapper(); 
IDocument iDocObj = mapper.convertValue(map, IDocument.class); 

在iDocObj的IAM能够获得除了filnm一切的价值观,它是未来的空

iDocObj.getFilNm()getSubField1()= NULL。

如何获取getFilNm的值。

回答

0

在您的JSON它被命名为subfiled1并在java中它是子...所以我检查受审的权利命名约定

+0

但同样的结果 – tjkmr 2014-08-28 07:18:25

+0

那么这是公认的子记录列表您的JSON是错的你应该有'subfiled1 = {value1:“Somevalue”,value2:“Somevalue2”}' – dpassy 2014-08-28 07:20:15