Json字符串轉對象和轉List集合操作

項目需求: 商品多個規格,規格下面多個顏色,每個顏色價格不同,庫存不同!
前端傳的這個String products 是個JSON字符串: 數據格式是:
[{“name”:“自定義名稱”,“status”:1,“price”:“2342”,“promotion_price”:“234234”},{“name”:“自定義名稱”,“status”:1,“price”:“2342”,“promotion_price”:“234234”}]
然後就要JSON字符串傳List進行保存!

	@ApiOperation(value="新增產品",notes = ApiNotes.USER_DATA_ACTIVITY)
    @RequestMapping(value = "/add",method = RequestMethod.POST)
    @ApiImplicitParam(name="commodity" ,value="內容",required = true,dataType = "String",paramType = "query")
    @ResponseBody
    public Object add(@ModelAttribute Commodity commodity,String products) {
        List<CommodityProduct> commodities = new ArrayList<CommodityProduct>();
        commodity.setCreateTime(new Date());
        commodity.setTypeId(commodity.getTypeId());
        commodity.setLibraryId(commodity.getLibraryId());
        commodityService.insert(commodity);        
        JSONArray jsonArray=JSONArray.fromObject(products);
        for(int i=0; i<jsonArray.size(); i++){
            JSONObject jsonObject = jsonArray.getJSONObject(i);
            CommodityProduct commo = (CommodityProduct)JSONObject.toBean(jsonObject,CommodityProduct.class);
            commo.setCreateTime(new Date());
            commo.setCommodityId(commodity.getId());
            System.out.println(commodity.getId());
            commodities.add(commo);
        }
        commodityProductService.insertBatch(commodities);
        return SUCCESS_TIP;
    }

還有一種方法:是對象裏面包括一個list,也就是Commodity這個實體類中包含一個泛型,然後讓前端進行傳值,處理方法是:

    /**
     * 新增產品
     */
    @ApiOperation(value="新增產品",notes = ApiNotes.USER_DATA_ACTIVITY)
    @RequestMapping(value = "/add",method = RequestMethod.POST)
    @ResponseBody
    public Object add(@ApiParam("參數封裝") @RequestBody Commodity commodity) {
        ration(commodity);
        commodity.setDecide(Const.COMMODITY_DECIDE);
        commodity.setCreateTime(new Date());
        //服務類型添加
        List<CommodityProduct>list = Lists.newArrayList();
        CommodityProduct commodityn = new CommodityProduct();
        for(CommodityProduct c : commodity.getProducts()){
            commodityn.setCommodityId(commodity.getId());
            BeanUtils.copyProperties(c, commodityn);
        }
        list.add(commodityn);
        commodityService.insert(commodity);
        commodityProductService.insertBatch(list);
        return SUCCESS_TIP;
    }
發佈了70 篇原創文章 · 獲贊 16 · 訪問量 2萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章