【问题标题】:Jackson serialization with ObjectMapper in java在java中使用ObjectMapper进行Jackson序列化
【发布时间】:2013-03-09 10:22:53
【问题描述】:

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

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

ObjectMapper objMapper;
objMapper.writeValueAsString(?)--

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

【问题讨论】:

  • 您将希望将这些列表放入某种包装对象中。否则,您将花费大量时间尝试在客户端解析出不同的项目类型。

标签: java jackson


【解决方案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);

【讨论】:

  • 感谢您的回复,但我想一次将两个列表发送到 objMapper.writeValueAsString(taxCategoryList + simpleUomList);
猜你喜欢
  • 1970-01-01
  • 2015-02-01
  • 2019-08-21
  • 2018-07-24
  • 1970-01-01
  • 1970-01-01
  • 2021-12-13
  • 2011-10-13
  • 1970-01-01
相关资源
最近更新 更多