zoukankan      html  css  js  c++  java
  • 前端数组对象传入SpringBoot后台项目用List接收的方法

    前提注意:前端的AJAX请求要是没有设置headers里的Content-Type时会默认为application/x-www-form-urlencoded",但是你传的是Json对象,

                     而后台使用@RequestBody注解进行接收就会抛出415异常,所以在使用JSON对象时需要设置headers里的Content-Type为application/json;charset=utf-8

    一.使用Gson

        Gson是google开发的一个开源Json解析库,使用十分的方便,在maven当中导入的方式为:

        步骤:注入依赖

    <dependency>
    <groupId>com.google.code.gson</groupId>
    <artifactId>gson</artifactId>
    <version>2.8.2</version>
    </dependency>
    常用方法:

     Object obj = new Object();

    //Object转Json字符串

    String obstr = new Gson().toJson(object);

    //Json字符串转Object

    Object object = new Gson().fromJson(obstr)

     

    二.后台使用fastjson

      介绍: FastJSON是一个Java语言编写的高性能,功能完善,完全支持http://json.org的标准的JSON库

       使用步骤:

       1.注入依赖:

    <dependency>
    <groupId>net.sf.json-lib</groupId>
    <artifactId>json-lib</artifactId>
    <version>2.4</version>
    <classifier>jdk15</classifier>
    </dependency>

    特别注意:如果缺少 <classifier>jdk15</classifier>可能会导致找不到相应的Jar包,所以添加上

    2.后端使用@RequestBody结合JSONObject jsonbject接收前端传来的数组(注意:这里不能直接用JSONArrtay直接接收,要先用JSONObject 再转成JSONArrtay,具体如下
    public Response addMarkBookGisPhoto(@RequestBody JSONObject jsonbject) { // 不能直接使用JSONArray类型的参数接收前台的json数组字符串JSONObject接收,然后取出
    ////取出points部分对象,就是key为points的数值{points:[]}
    JSONArray jsonArray = jsonbject.getJSONArray("points");
    List<LinePoint> pointlist=(List)JSONArray.toCollection(jsonArray,LinePoint.class); // 转成bean对象,就是反序列化
    for (LinePoint a : pointlist) {
    System.out.println(a.getSn());
    }
    return new Response(bookMarkServiceIface.addAirLineGisPhoto(points));
    }

    3.后台直接使用@RequestBody结合List<bean> 使用(推荐)
     好处:场景
     如果我数组里的对象a还有一个对象b,这时候我想把传进后端时作为一个字符串字段我就会先序列化b,然后再序列化a再传入后台
     如果我使用方法二反序列化时,b就会成为一个对象,跟实体类字段的String类型不符,就会接收不到值,而方法三完美解决此问题



       


     

  • 相关阅读:
    如何解决chrome和chromedriver版本不匹配
    RobotFramework 实战1——数据检查自动化
    RobotFramework 中的循环语句:FOR IN RANGE
    robotframework 获取昨日(get time关键词的用法)
    大数据用户画像方法与实践(干货 转帖)
    Scrapy实战篇(九)之爬取链家网天津租房数据
    Scrapy实战篇(八)之爬取教育部高校名单抓取和分析
    Scrapy实战篇(七)之爬取爱基金网站基金业绩数据
    Selenium常用方法
    Selenium之动作链(ActionChains)
  • 原文地址:https://www.cnblogs.com/superman-21/p/14077318.html
Copyright © 2011-2022 走看看