java后端接口接收前端传递过来的对象List,接收最初是封装的JSON数据,然后再把它解析成对象放到List

前言

已经选择了做一个程序员,那就要有职业警惕性。程序员这行,可深可浅。回首一下,六月份毕业,6月20号入职,到如今已经100多天了。这一百多天真的是提心吊胆,最大程度怀疑自己的能力,怀疑自己是否能胜任java开发。人最大的恐惧,就是面临未知。这一百多天,每当我面临一个从未见过的问题时,我都有一种恐惧,一种焦虑。不过,经历地多了,我现在已经慢慢地在降低内心面对未知的恐惧。我深知,经验是非常重要的,尤其是程序这一行,有时候可能就是ctr+C,ctr+V。因此,我决定每周回想一下这周遇到的问题是什么?怎么解决的。把这些问题的解决方法记录下来,然后在下次处理业务时看看能不能直接复用。点滴积累,背后都是付出的汗水,慢慢进步,希望自己摆脱低端的码农,争取早日向高级软件开发工程师进发。

业务需求

公司最近由于业务的需要,要在A系统上导入一个excel文件,并把这个文件下发到B系统。我负责的就是B系统,我要接收A系统中导入的excel文件中的数据,利用其中的数据来更新B系统中的一些数据。

业务实现

通过与负责A系统开发的哥们沟通,我俩最终决定我写个接口,他来调。他把数据封装成list,然后再转为json下发给我。然后我这边接收时是个String类型的Json字符串。因此我需要把这个json字符串给还原成实体对象。起初,我上网查了一下,网上有一些方法,不过不是很适合我的业务。因此这个系统比较老,用的json包也是比较老的。它不是很方便把json数组对象转化成LIst集合对象的。后来,我想了一个折中的办法,最终把它给实现了。

代码

  @RequestMapping(value = "/insertModel", method = RequestMethod.POST, produces = "text/html;charset=UTF-8")
    @ResponseBody
    public String savaModel(@RequestParam(value = "ModelLists") String ModelLists){
        //解析数据成jsonArray
        JSONArray jsonArray = JSONArray.fromObject(ModelLists);

        List<Model> model1Lists = new ArrayList<>();
        for (int i=0;i<jsonArray.size();i++){
            JSONObject jsonObject1 = jsonArray.getJSONObject(i);
            Modelmodel1= new Model();
            Modelmodel1.setId(jsonObject1.optString("id"));
          //...这里是为实体对象赋值,省略了 
          model1Lists.add(Modelmodel1);
        }

    }

代码解释

这里说明一下,这个接口里面不止接收数据这么简单,我只是记录一下接收数据的实现思路。后面的业务就涉及到公司机密了。其实,它的实现方法是采取了折中的方法。我的json包很老,不能直接把json数组解析List<对象>,那我就遍历json数组,把其中的json对象给它还原成实体对象,然后把实体对象放到list中。
当然了,具体遇到这种业务,最好的办法是先看看json数组能不能直接转成实体list,因为我看网上有些人发的好像有些json包能够支持。

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

“小笨熊”

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值