springMVC Mybatis ssm整合 post请求json 响应json数据配置

1、pom.xml

 <dependency>
        <groupId>com.alibaba</groupId>
        <artifactId>fastjson</artifactId>
        <version>2.0.32</version>
    </dependency>

2、springmvc-config.xml

 <!--开启mvc的注解驱动-->
    <mvc:annotation-driven />

3、Controller

package org.example.controller;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import org.example.model.fine_conf_xmlentity;
import org.example.service.FineConfXmlentityService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.*;
import com.alibaba.fastjson.JSON;

import java.util.List;


@Controller
@RequestMapping(value = "/login")
public class fineConfXmlentityController {

    @Autowired
    public FineConfXmlentityService fine;

    /*
    * 阿里巴巴FastJson是一个Json处理工具包,包括“序列化”和“反序列化”两部分,它具备如下特征:
速度最快,测试表明,fastjson具有极快的性能,超越任其他的Java Json parser。包括自称最快的JackJson;
功能强大,完全支持Java Bean、集合、Map、日期、Enum,支持范型,支持自省;无依赖,能够直接运行在Java SE 5.0以上版本;支持Android;开源 (Apache 2.0)

源码地址:https://github.com/alibaba/fastjson


Fastjson API入口类是com.alibaba.fastjson.JSON,常用的序列化操作都可以在JSON类上的静态方法直接完成。

public static final Object parse(String text); // 把JSON文本parse为JSONObject或者JSONArray
public static final JSONObject parseObject(String text); // 把JSON文本parse成JSONObject
public static final  T parseObject(String text, Class clazz); // 把JSON文本parse为JavaBean
public static final JSONArray parseArray(String text); // 把JSON文本parse成JSONArray
public static final  List parseArray(String text, Class clazz); //把JSON文本parse成JavaBean集合
public static final String toJSONString(Object object); // 将JavaBean序列化为JSON文本
public static final String toJSONString(Object object, boolean prettyFormat); // 将JavaBean序列化为带格式的JSON文本
public static final Object toJSON(Object javaObject); 将JavaBean转换为JSONObject或者JSONArray。
    * */


    @RequestMapping(value = "/ajax/pos" ,method = RequestMethod.POST)
    @ResponseBody // 定义返回json数据给前台
//    public Object repostRespone(@RequestParam(value = "username") String name,@RequestBody JSONObject reqf){
        public Object repostRespone(@RequestParam(value = "username") String name,@RequestBody JSONArray reqf){

            JSONArray lst = fine.queryAll();

        //        System.out.println(o);
        System.out.println("测试json数据接收:"+reqf);
        //将字符串格式的字段转换为JSon字段
        System.out.println(name);
        System.out.println(reqf.get(0));

//        return lst;

        return lst;
    }


}

  

4、html js请求

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<script type="text/javascript" src="/static/code.jquery.com_jquery-3.7.0.min.js"></script>
<body>
  <button id="btn" onclick="myFunction()" >
      <h6>成功测试</h6>
  </button>
<div id = "myDiv"> </div>
  <script type="text/javascript">

      function myFunction(){
            // var date = {id:"管理员",value:"123456"}
          // var category={"name":"James","id":"001"};
          var date = [{id:"管理员",value:"123456"},"FDASFDS",12321]
          var jsonData = JSON.stringify(date);

          $.ajax({
              //${pageContext.request.contextPath}用于取后端方法的绝对路径的项目名
              url: "/login/ajax/pos?username=admin",
              type: "post",
              data:jsonData, //必须是字符串格式
              contentType:"application/json;charset=UTF-8", //指定内容格式
              dataType:"json",
              success: function(data) {  //括号里的data是服务器返回的数据
                  alert("Hello World!");
                  console.log(data);

              }
          });
      }
  </script>

</body>
</html>

  

posted @ 2023-07-25 21:18  洺剑残虹  阅读(116)  评论(0编辑  收藏  举报