2013-03-20 8 views
11

Chcę serializować różne typy list za pomocą programu odwzorowującego obiekty, ale nie wiem jak przekazywać różne typy obiektów list do obiektu Mapper obiektu naraz. Oto mój kod:Serializacja Jacksona z ObjectMapper w java

AccountingService accService  = ServiceFactory.getAccountingService(); 
List<TaxCategory> taxCategoryList = accService.getAllTaxCategories(); 
ProductService productService  = ServiceFactory.getProductService(); 
List<SimpleUom> simpleUomList  = productService.getSimpleUomsList(); 

ObjectMapper objMapper; 
objMapper.writeValueAsString(?)-- 

Czy zaproponowałbyś mi, co muszę podać zamiast? w powyższym kodzie. Wynika to z tego, że muszę uzyskać ciąg serializowany jackson, który zawiera powyższe listy jako pojedynczy ciąg w jsp i przeanalizować ten ciąg, aby uzyskać indywidualne listy do użycia po stronie klienta.

+1

Będziesz chciał umieścić te listy w jakimś opakowaniu. W przeciwnym razie spieszysz się z próbą przeanalizowania różnych typów elementów po stronie klienta. – Perception

Odpowiedz

22

Wystarczy spróbować:

ObjectMapper objMapper = new ObjectMapper(); 
String jsonString = objMapper.writeValueAsString(simpleUomList); 

Edycja według komentarza:

Musisz utworzyć klasę owijając swoje dwie listy, a następnie zapisać go:

public class MyLists { 
    private List<TaxCategory> taxCategoryList; 
    private List<SimpleUom> simpleUomList; 
    // + constructor, getters and setters 
} 

ObjectMapper objMapper = new ObjectMapper(); 
MyLists myLists = new MyLists(taxCategoryList, simpleUomList); 
String jsonString = objMapper.writeValueAsString(myLists); 
+0

Thansk za odpowiedź, ale chcę wysłać obie listy jednocześnie do obiektu objMapper.writeValueAsString (taxCategoryList + simpleUomList); –

+0

Edytowałem swoją odpowiedź –

Powiązane problemy