Java 从映射处理数组列表
我们正在尝试访问放置在地图中的对象数组 任何人都可以指导我们获取数组的长度以及从列表中获取每个元素。下面给出的示例映射对象Java 从映射处理数组列表,java,arraylist,collections,objectmapper,Java,Arraylist,Collections,Objectmapper,我们正在尝试访问放置在地图中的对象数组 任何人都可以指导我们获取数组的长度以及从列表中获取每个元素。下面给出的示例映射对象 { storeId = 1, ShipToStreetLine1 = test 123, ShipToCity = Seattle, OrderDetails = [{ distributor_name = SS, product_name = HORN 80897 AM GUN 300BO 125 HP 50
{
storeId = 1,
ShipToStreetLine1 = test 123,
ShipToCity = Seattle,
OrderDetails = [{
distributor_name = SS,
product_name = HORN 80897 AM GUN 300BO 125 HP 50/10
}]
}
我们需要获取orderDetails数组的大小,如果存在数据,则我要获取产品名称。您可以尝试以下操作:
创建一个POJO,它是您在orderDetails中获得的类型
像
在你的逻辑课上,你能做的就是
ArrayList<OrderDetailElement> orderDetails = yourMap.get("OrderDetails");
List<String> products = new ArrayList<String>();
if (orderDetails.size() > 0) {
for (OrderDetailElement orderDetailElement : orderDetails) {
products.add(orderDetailElement.getProduct_name());
}
}
您需要将其反序列化到某个对象。顺便问一下,这是Java映射的内容吗?如果是,其类型是什么?是地图吗?你能给我们看一下你的物品的完整代码吗?如果我们只有这种型号,给你精确的方法说明并不容易。请参阅@Suresh:如果这解决了您的问题,请接受答案。这将有助于提高我的声誉。谢谢
ArrayList<OrderDetailElement> orderDetails = yourMap.get("OrderDetails");
List<String> products = new ArrayList<String>();
if (orderDetails.size() > 0) {
for (OrderDetailElement orderDetailElement : orderDetails) {
products.add(orderDetailElement.getProduct_name());
}
}