Jackson 使用 ObjectMapper 在 java 中的序列化

2022-09-03 13:13:46

我想使用对象映射器序列化不同类型的列表,但我不知道如何一次将不同类型的列表对象传递到对象映射器中。以下是我的代码:

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

ObjectMapper objMapper;
objMapper.writeValueAsString(?)--

你能建议我必须通过什么而不是?在上面的代码中。这是因为我必须获取包含上述列表的 jackson 序列化字符串作为 jsp 中的单个字符串,并解析该字符串以获取要在客户端使用的单个列表。


答案 1

只需尝试:

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

根据评论编辑:

您需要创建一个包装两个列表的类,然后编写它:

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

答案 2

推荐