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

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的方式传递参数

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/490024.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

懂数学人的都认同:数学的本质[关联]万物(二)

来源:数学职业家结构、关系与信息关系是与结构绑定的不可分割的,是对结构从某个视角观察的结果,并且这个角度看到的是可以被观察者所理解和可感知的。这里的可感知,即是可以被人体的感觉系统(如视觉、听觉、触觉等&…

java比较StringBuilder和StringBuffer字符串内容是否相等

由于StringBuilder和StringBuffer没有重写equals方法,所以还是使用的Object的equals方法。对比的是两个对象的地址是否相等。为了比较StringBuilder和StringBuffer字符串内容是否相等,需要先将其转换为string,String 由于重写了equals方法&am…

计算虚拟化涉及的关键技术有哪几项_都开始商用了 5G的这些关键技术还不知道?...

[PConline 杂谈]作为新一代移动通信技术,5G为我们带来了更高的数据速率与更低的延迟,甚至比4G快了100倍。在满足移动超高清视频、AR/VR等大流量应用的同时,更将开启万物互联、深度融合的发展新阶段。如果说3G提升了速度,4G改变了生…

有效沟通

先看两个笑话: 一个苏格兰人去伦敦,想顺便探望一位老朋友,但却忘了他的住址,于是给家父发了一份电报:“您知道托马的住址吗?速告!”当天,他就收到一份加急回电:“知道。”…

)类 新建javafx程序时_第三章 第一个OpenCV的JavaFX应用程序.md

# 第三章 第一个OpenCV的JavaFX应用程序---***注意***:我们假设您现在已经阅读了之前的教程。如果没有,请在[http://opencv-java-tutorials.readthedocs.org/en/latest/index.html](http://opencv-java-tutorials.readthedocs.org/en/latest/index.html)…

公式和图片转LaTeX网址

在线LaTeX公式编辑器-编辑器

沃丰报告:物联网的未来

物联网的未来激动人心,但物联网并不只为那些极具创新精神的创业企业而生。大多数物联网项目都不是为了创造头条新闻,而是为了做出切实的成果。我相信我们已经越过了临界点,物联网已经成为主流。来源 | 沃达丰物联网近日,沃达丰(vo…

推销员(codevs 5126)

题目描述 Description阿明是一名推销员,他奉命到螺丝街推销他们公司的产品。螺丝街是一条死胡同,出口与入口是同一个,街道的一侧是围墙,另一侧是住户。螺丝街一共有N家住户,第i家住户到入口的距离为Si米。由于同一栋房…

python管理系统web版_Python学生管理系统(web网页版)-Go语言中文社区

前言:本项目是使用Python的Django的web框架搭建的,是一个完整的学生管理系统,功能包括基本的增删改查 项目演示图: 首页展示数据的页面(index.html)添加学生的页面(add.html)搜索学生…

hog函数的用法 python_Python常见内置函数用法(三)

本文作者:孙雪丽文字编辑:周聪聪技术总编:张学人重大通知!!!2019年6月22日至24日在河南郑州举行Stata编程技术特别训练营,招生工作已经圆满结束。另外爬虫俱乐部将于2019年7月5日至7月8日在武汉…

pytorch打印模型每层的结构

可以用torchsummary下的summary方法,或者torchinfo下的summary方法,两者功能是一样的 以torchsummary下的summary方法为例说明 首先通过pip install torchsummary 之后在代码中: from torchsummary import summarysummary(model, (1, 28,…

学会动态丨中国人工智能学会成功召开重大科学问题《智能生成机理》研讨会...

来源:中国人工智能学会为配合国家科技发展的重大需求,推进重大科学问题的研究,形成相应的政策建议,中国人工智能学会于9月29日上午9时在北邮科技大厦召开了“重大科学问题《智能生成机理》研讨会”。现场专家们通过深入交流&#…

Linux文件(区域)锁函数 -- open()、fcntl()

一、什么是文件锁定 对于锁这个字,大家一定不会陌生,因为我们生活中就存在着大量的锁,它们各个方面发挥着它的作用,现在世界中的锁的功能都可归结为一句话,就是阻止某些人做某些事,例如,门锁就是…

**Java有哪些悲观锁的实现_「Java并发编程」何谓悲观锁与乐观锁,Java编程你会吗...

何谓悲观锁与乐观锁悲观锁乐观锁两种锁的使用场景乐观锁常见的两种实现方式1. 版本号机制2. CAS算法乐观锁的缺点1 ABA 问题2 循环时间长开销大3 只能保证一个共享变量的原子操作CAS与synchronized的使用情景何谓悲观锁与乐观锁乐观锁对应于生活中乐观的人总是想着事情往好的方…

python分配内存_CPython内存分配

其中大部分内容在C API文档的Memory Management章节中得到回答.一些文档比您要求的更容易.有关详细信息,您必须转到源代码.没有人会愿意这样做,除非你选择一个特定的版本. (至少2.7.5,2.7.6,3.3.2之前,3.3.3之前和3.4之前对于不同的人来说将是有趣的.)obmalloc.c文件的来源是您…

现代版的大案牍术:数字孪生在城市的应用

来源:阿里研究院最近大火的电视剧《长安十二时辰》中,靖安司大规模启用秘密核武器——大案牍术,书吏们从各个部门汇总来的人员往来、钱粮货物流水中寻找到蛛丝马迹甚至未卜先知,再结合长安版的5G通讯——望楼通信与大沙盘&#xf…

关于样式表setStyleSheet

在Qt中设置widget背景颜色或者图片方法很多种:重写paintEvent() , 调色板QPalette , 样式表setStyleSheet等等。 但是各种方法都有其注意事项,如果不注意则很容易陷入麻烦中。 1:setStyleSheet() 这个函数我一直很喜欢使用,因为只…

react打包后图片丢失_使用 webpack 搭建 React 项目

简评:相信很多开发者在入门 react 的时候都是使用 create-react-app 或 react-slingshot 这些脚手架来快速创建应用,当有特殊需求,需要修改 eject 出来的 webpack 配置文件时,面对各种配置项不知如何下手,本文会介绍如…

揭秘5G+AI时代的机器人世界!七大核心技术改变人类生活【附下载】| 智东西内参...

来源: 智东西AI 和 5G 与机器人技术结合,正在不断催生新的消费电子品类。AI 解决机器理解世界,以及人机交互的问题。5G 拓展机器人的活动边界,并为机器人提供更大的算力和存储空间(云协作机器人) 。根据 IF…