1.Json传递数据两种方式(json大全)

----------------------------字符串

var list1 = ["number","name"];

var param={};

param["list1"] =list1;

param["test"] ="java";

var json=JSON.stringify(param);

$.ajax({

type:'POST',

url: CTX+ '双击查看原图eckInvoice双击查看原图st',

data: {

ids: json

},

dataType:"json",

async:false,

success: function(data){if(data.success) {

value= 'success';

$("#table").bootstrapTable('refresh');

}else{

value= 'fail';

}

showAlertFrame(value, data.message);

},

error: function (e) {

}

});

};

@PostMapping(value = "/list")

@ResponseBodypublic voidinvoiceDetail2(String ids) {

JSONObject jsonobject=JSONObject.parseObject(ids);

JSONArray jsonArray= JSONArray.parseArray(jsonobject.get("list1").toString());

List list = jsonArray.toJavaList(String.class);

}

@PostMapping(value= "/list2")

@ResponseBodypublic voidlist2(@RequestBody ScannerVo vo) {

List list =vo.getList1();//JSONArray jsonArray = JSONArray.parseArray(vo.getList1());//List list = jsonArray.toJavaList(String.class);

}

-------------------------------------对象

public class ScannerVo {

private List list1;

public List getList1() {

return list1;

}

public void setList1(List list1) {

this.list1 = list1;

}

public String getTest() {

return test;

}

public void setTest(String test) {

this.test = test;

}

private String test;

}

var getInvoice = function (invoiceCode,invoiceNum) {

var list1 = ["number","name"];

var param = {};

param["list1"] = list1;

param["test"] ="java";

var json = JSON.stringify(param);

$.ajax({

type: 'POST',

url: CTX + '/checkInvoice/list2',

data: json,

dataType: "json",

async:false,

contentType: 'application/json',

success: function(data){

if(data.success) {

value = 'success';

$("#table").bootstrapTable('refresh');

} else {

value = 'fail';

}

showAlertFrame(value, data.message);

},

error: function (e) {

}

});

};

@PostMapping(value = "双击查看原图st2")

@ResponseBodypublic voidlist2(@RequestBody ScannerVo vo) {

List list =vo.getList1();//JSONArray jsonArray = JSONArray.parseArray(vo.getList1());//List list = jsonArray.toJavaList(String.class);

}

springmvc接收json数据的4种方式

ajax我经常用到,传的数据是json数据,json数据又有对象,数组。所有总结下springmvc获取前端传来的json数据方式:

1、以RequestParam接收

前端传来的是json数据不多时:[id:id],可以直接用@RequestParam来获取值

@AutowiredprivateAccomodationService accomodationService;

@RequestMapping(value= "/update")

@ResponseBodypublic String updateAttr(@RequestParam ("id") intid) {int res=accomodationService.deleteData(id);return "success";

}

2、以实体类方式接收

前端传来的是一个json对象时:{【id,name】},可以用实体类直接进行自动绑定

@AutowiredprivateAccomodationService accomodationService;

@RequestMapping(value= "/add")

@ResponseBodypublicString addObj(@RequestBody Accomodation accomodation) {this.accomodationService.insert(accomodation);return "success";

}

3、以Map接收

前端传来的是一个json对象时:{【id,name】},可以用Map来获取

@AutowiredprivateAccomodationService accomodationService;

@RequestMapping(value= "/update")

@ResponseBodypublic String updateAttr(@RequestBody Mapmap) {if(map.containsKey("id"){

Integer id= Integer.parseInt(map.get("id"));

}if(map.containsKey("name"){

String objname= map.get("name").toString();

}//操作 ...

return "success";

}

4、以List接收

当前端传来这样一个json数组:[{id,name},{id,name},{id,name},...]时,用List接收

@AutowiredprivateAccomodationService accomodationService;

@RequestMapping(value= "/update")

@ResponseBodypublic String updateAttr(@RequestBody Listlist) {for(Accomodation accomodation:list){

System.out.println(accomodation.toString());

}return "success";

}

Springmvc接受json参数总结

关于springmvc的参数我觉得是个头痛的问题,特别是在测试的时候,必须要正确的注解和正确的contype-type 后端才能被正确的请求到,否则可能报出400,415等等bad request。

1,最简单的GET方法,参数在url里面,比如:

@RequestMapping(value = “/artists/{artistId}”, method = {RequestMethod.GET})

@PathVariable去得到url中的参数。

public Artist getArtistById(@PathVariable String artistId)

2,GET方法,参数接在url后面。

@RequestMapping(value = "/artists", method ={RequestMethod.GET})publicResponseVO getAllArtistName(

@RequestParam(name= "tagId", required = false) final String tagId)

访问的时候/artists?tagId=1

@RequestParam相当于request.getParameter(“”)

3,POST方法,后端想得到一个自动注入的对象

@RequestMapping(value = "/addUser", method ={RequestMethod.POST})public void addUser(@RequestBody UserPO users){

这里要注意@RequestBody,它是用来处理前台定义发来的数据Content-Type: 不是application/x-www-form-urlencoded编码的内容,例如application/json, application/xml等;我们使用@RequestBody注解的时候,前台的Content-Type必须要改为application/json,如果没有更改,前台会报错415(Unsupported Media Type)。后台日志就会报错Content type ‘application/x-www-form-urlencoded;charset=UTF-8’ not supported

如果是表单提交 Contenttype 会是application/x-www-form-urlencoded,可以去掉@RequestBody注解

---------------------

这时聪明的spring会帮我按照变量的名字自动注入,但是这是很容易遇到status=400

Whitelabel Error Page

This application has no explicit mapping for /error, so you are seeing this as a fallback.

Tue Feb 06 16:49:34 GMT+08:00 2018
There was an unexpected error (type=Bad Request, status=400).
Validation failed for object='user'. Error count: 1

1

这是springboot的报错,原因是bean中有不能注入的变量,因为类型的不一样,一般是date和int的变量,所以在使用的时候要特别注意。

---------------------

如果前端使用的$.ajax来发请求,希望注入一个bean。这时又有坑了,代码如下:

$.ajax({

headers: {

Accept:"application/json; charset=utf-8"},

method :'POST',

url:"http://localhost:8081/user/saveUser",

contentType:'application/json',

dataType:"json",

data: json,//async: false,//true:异步,false:同步//contentType: false,//processData: false,

success: function (data) {if(data.code == "000000"){

alert(data.desc);

window.location.href="http://localhost:8081/login.html";

}

},

error: function (err) {

alert("error");

}});---------------------

马上就报错了:

**error

:

“Bad Request”

exception

:

“org.springframework.http.converter.HttpMessageNotReadableException”

message

:

“JSON parse error: Unrecognized token ‘name’: was expecting ‘null’, ‘true’, ‘false’ or NaN; nested exception is com.fasterxml.jackson.core.JsonParseException: Unrecognized token ‘name’: was expecting ‘null’, ‘true’, ‘false’ or NaN↵ at [Source: java.io.PushbackInputStream@7fc056ba; line: 1, column: 6]”

path

:

“/user/saveUser”

status

:

400

timestamp

:

1518094430114**

这是看看发送的参数:

居然不是我拼装好的json,

data: json,  改成 data: JSON.stringify(json),后端接收json String,json只是个对象,所以解析不了!

---------------------

4,POST方法,需要得到一个List的类型

@RequestMapping(value = “/addUser”, method = {RequestMethod.POST})

public void addUser(@RequestBody List users){

---------------------

5,POST方法,后台需要得到一个List类型。

@RequestMapping(value = "/getPlayURL", method ={RequestMethod.POST})

@ResponseBodypublic ListgetPlayUrlBySongIds(

@RequestParam(name= "songId",required = false) ListsongIdList) {---------------------

004-SpringMVC-如何接收各种参数(普通参数,对象,JSON, URL)

在交互的过程中,其中一个关键的节点就是获取到客户端发送过来的请求参数,本篇文章,我们来罗列下SpringMVC对于各种数据的获取方式:说明:以下重点在讲解如何获取参数上,所以返回的数据不是重点1,普通方式,请求参数名跟Controller的方法参数一致1.1 创建Controller

---------------------

1.2 发送请求做测试(由于方法没有限制请求方式,所以get和post均可)

2,当请求参数过多时,以对象的方式传递

2.1 创建一个类,包含多个参数(简单不附带图了)

2.2 前台传递参数的方式不变

2.3 后台接收参数的方法

原因很简单,是因为SpringMVC默认是没有对象转换成json的转换器,所以需要手动添加jackson依赖。com.fasterxml.jackson.corejackson-databind2.8.8

---------------------

3,当请求参数名跟方法参数名不一致时,@RequestParam

4,当需要传递Json格式的数据是,@RequestBody

4.1 前台传递的方式是json

5,通过URL的方式传递参数

ireport参数传递json_Json传递数据两种方式(json大全)相关推荐

  1. Android页面数据传递的两种方式

    在android中实现页面中数据的传递有两种方式: 1:第一种数据传递的方式是通过inputExtra方法来进行数据的传递的 2:第二中方法是通过bundle的方法来实现数据的传递的 接下来我们首先来 ...

  2. fragment与activity之间的信息传递的两种方式

    因为Fragment和Activity一样是具有生命周期,不是一般的bean通过构造函数传值,会造成异常. fragment与activity之间的信息传递的两种方式: 1.第一种方式,也是最常用的方 ...

  3. 跨页数据传递的两种方式

    选择具有PostBackUrl属性的三个控件Button.LinkButton.ImageButton.PostBackUrl属性的值就是投递的页面URL. 要在接收页面按对象的方式接收投递页面的表单 ...

  4. SparkStreaming从Kafka读取数据两种方式

    参考文章:http://www.jianshu.com/p/60344796f8a5 在结合 Spark Streaming 及 Kafka 的实时应用中,我们通常使用以下两个 API 来获取最初的 ...

  5. JAVA与PLC通讯读取数据(两种方式)

    第一种方式(s7connector) S7官网:S7Connector - Documentation,有简单的读写操作参考. 1.创建maven工程引入依赖 <dependency>&l ...

  6. 前端项目模拟数据两种方式

    文章目录 1. Mock.js 1.1 安装依赖包mockjs 1.2 在 src 目录下创建 mock 文件夹 1.3 准备模拟的数据 1.4 创建 mockServer.js 1.5 引入mock ...

  7. Struts2中表单与Action传递数据三种方式

    1. Action中的属性与表单中的属性一致就可以JSP中的表单<formaction="login.action"method="post">用户 ...

  8. python 爬虫The One的 数据两种方式

    系统:windows 语言:python 工具:pycharm 需要的包:beautifulsoup.requests 安装以上的包,方法类似, 手动方式 任务:爬300条.采用多线程.非多线程 单线 ...

  9. HashMap 遍历hashMap的7种方法和删除数据两种方式

    遍历数据 1.使用Iterator 遍历HashMap EntrySet 2.使用Iterator 遍历HashMap KeySet 3.使用For-each EntrySet 循环迭代 HashMa ...

最新文章

  1. 2022-2028年中国基因工程药物产业市场研究及前瞻分析报告
  2. 输出一个为递增排序数组的旋转数组中的最小元素——8
  3. 树莓派AI视觉云台——3、树莓派系统的启动
  4. 深度学习在美团的应用
  5. python解析sql文件_如何从Python中解析sql文件?
  6. MySQL半同步的配置
  7. 你有什么办法可以让摄影的模特又高又美?
  8. hive sql 13位毫秒时间戳转日期
  9. java http下载_java http下载文件
  10. Axure 基本功能
  11. Python爬虫编程思想(92):项目实战:抓取京东图书评价
  12. 初学QTP系列视频教程
  13. 三段式状态机的原理/代码/仿真,1001序列检测实例Verilog
  14. Flask 数据库迁移(详解)
  15. jovi语音助手安装包_jovi语音助手下载
  16. 域名 空间 服务器 三者之间的关系
  17. iPhone13再现粉屏问题,同时出现闪退/卡顿/重启?
  18. 基于 WT2003H0语音芯片在扫地机/智能桌游等产品更换语音bin应用设计方案介绍
  19. IEEE754标准转换
  20. 用Google Analytics监控营销邮件打开率

热门文章

  1. activiti页面展示流程图乱码_activiti 5.17 流程图中文乱码问题
  2. 数据库实例:mysql与mongo结合用户登录
  3. 桩筏有限元中的弹性板计算_采用PKPM系列JCCAD软件桩筏筏板有限元方法计算的模型参数 -...
  4. 李宏毅机器学习(七)Bert and its family
  5. 美团 iOS 工程 zsource 命令背后的那些事儿
  6. 美团点评Kubernetes集群管理实践
  7. 推荐系统中的Embedding
  8. 【HTML/CSS】CSS盒模型及其理解
  9. 《程序员面试宝典》笔记一
  10. [leetcode]从中序与后序/前序遍历序列构造二叉树