Java嵌套循环取值异常:无法正确提取PromoItem的itemCode
如何提取PromoItem的具体itemCode值并整理成指定格式?
问题背景
我需要通过循环获取区域(territory)及其对应的商品列表,但始终无法正确提取PromoItem的有效itemCode值:要么itemCode为null,要么得到的是整个PromoItem对象列表的字符串形式,而非单独的itemCode内容。
查询到的实体数据集
PricingRuleEntity(territory=Maryland, items=[PromoItem(itemCode=Nivea Men Box (12.0 PC), name=5e0648a9e5, uom=null), PromoItem(itemCode=Dove Men Box (6.0 Box), name=d805f9bb9d, uom=null)])
我的循环代码
List<Territory> territories = new ArrayList<>(); for(PricingRuleEntity pricingRuleEntity: pricing){ Territory territory = new Territory(); territory.setTerritory(pricingRuleEntity.getTerritory()); territory.setListItems(pricingRuleEntity.getItems()); for(Territory itemCode: territories) { PromoItem itemCode1 = new PromoItem(); itemCode1.setItemCode(String.valueOf(itemCode1.getItemCode())); territories.add(itemCode); } territories.add(territory); } System.out.println(territories);
实体类定义
PricingRuleEntity
@Entity @Data @Table(name = "pricing_rule") public class PricingRuleEntity extends BaseEntity { @Column(name = "territory", nullable = false) private String territory; @Type(type = "json") @Column(columnDefinition = "JSON") public List<PromoItem> items; }
Territory
@Data public class Territory { @JsonProperty("territory") String territory; @JsonProperty("listItems") List<PromoItem> listItems; }
PromoItem
@Data public class PromoItem { @JsonProperty("item_code") String itemCode; @JsonProperty("name") String name; @JsonProperty("uom") Integer uom; }
之前的尝试结果
- 初始代码运行后,PromoItem的itemCode始终为null:
itemCode1: PromoItem(itemCode=null, name=null, uom=null)
- 按照@ScaryWombat的建议修改代码,将
itemCode1.setItemCode(String.valueOf(itemCode1.getItemCode()));替换为itemCode1.setItemCode(String.valueOf(itemCode.getListItems()));后,得到的结果是把整个PromoItem列表转为字符串赋值给了itemCode,并非预期的单独itemCode值:
PromoItem(itemCode=[PromoItem(itemCode=Nivea Men Box (12.0 PC), name=5e0648a9e5, uom=null), PromoItem(itemCode=Zesta Jam Box (5.0 pcs), name=d805f9bb9d, uom=null)], name=null, uom=null)
预期需求
我需要提取每个PromoItem的具体itemCode值,整理成类似(Nivea Men Box (12.0 PC), Zesta Jam Box (5.0 pcs))的格式,请问该如何修改代码?
内容的提问来源于stack exchange,提问作者justrying
相关产品推荐
相关产品推荐

