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