springMvc前端传递参数为json数组形式,记一次心得
记一次springMvc传递json数组,后端如何接收的问题?
例子:在postman中写好测试样例数据:
{"TDGY_CJGS": [{"RESOURCEID":"6", "RESOURCENO":"6", "NOTICEID":"6", "NOTICENO":"6", "CRXZ":"1", "NOTICENR":"1", "GSBH":"1", "JDDW":"1", "CRMJ":"1", "GHYT":"1", "GHYTNAME":"1", "CRNX":"1", "CRNXBZ":"1", "CJJ":"1", "ZDSL":"1", "ENDTIME":"2020-02-20", "YHLB":"1", "JYFS":"1", "TSSJ":"2020-08-08", "GDLB":"1"}, {"RESOURCEID":"7", "RESOURCENO":"7", "NOTICEID":"7", "NOTICENO":"7", "CRXZ":"7", "NOTICENR":"1", "GSBH":"1", "JDDW":"1", "CRMJ":"1", "GHYT":"1", "GHYTNAME":"1", "CRNX":"1", "CRNXBZ":"1", "CJJ":"1", "ZDSL":"1", "ENDTIME":"2020-02-20", "YHLB":"1", "JYFS":"1", "TSSJ":"2020-08-08", "GDLB":"1"} ] }
对于这种传参,就是典型的数组里面套着许多个对象,这样的话,我们在后端接受参数中可以接收json格式的参数对象,但是接收过后,要对这个进行处理。比如我想要拿到第二个对象里面的某个属性的数据,这个时候该怎么做呢,我这里使用JSONArray来转换。在controller层我们可以这样做,接收一个json的数据。
在业务层(service层)我们可以使用JSONArray来转换json的数据。
/** 转换为json数组,TDGY_CJGS这个是传过来的json的key值,根据这个值获取到你想要的json,因为可能会有多个数组,可以根据这个来进行区分 */ JSONArray jsonArray = jsonObject.getJSONArray("TDGY_CJGS"); int temp = 0; for (int i = 0; i < jsonArray.size(); i++) { /** 获取json数组中的每一个json数据 */ JSONObject job = (JSONObject) jsonArray.get(i); /** 可以获取每一个json中的属性值,根据k-v的性质,在这里你可以拿到你需要的属性进行处理 */ String RESOURCEID = job.getString("RESOURCEID"); }
记一次心得,希望对有需要的人有帮助!