Java接收json参数

news2024/9/24 23:28:46

JSON 并不是唯一能够实现在互联网中传输数据的方式,除此之外还有一种 XML 格式。JSON 和 XML 能够执行许多相同的任务,那么我们为什么要使用 JSON,而不是 XML 呢?

之所以使用 JSON,最主要的原因是 JavaScript。众所周知,JavaScript 是 Web 开发中不可或缺的技术之一,而 JSON 是基于 JavaScript 的一个子集,JavaScript 默认就支持 JSON,而且只要您学会了 JavaScript,就可以轻松地使用 JSON,不需要学习额外的知识。

另一个原因是 JSON 比 XML 的可读性更高,而且 JSON 更加简洁,更容易理解。

与 XML 相比,JSON 具有以下优点:

1、结构简单、紧凑:与 XML 相比,JSON 遵循简单、紧凑的风格,有利于程序员编辑和阅读,而 XML 相对比较复杂;

2、更快:JSON 的解析速度比 XML 更快(因为 XML 与 HTML 很像,在解析大型 XML 文件时需要消耗额外的内存),存储同样的数据,JSON 格式所占的存储空间更小;

3、可读性高:JSON 的结构有利于程序员阅读。

Java接收json参数

/*
 * 第一种:以RequestParam接收
 * http://localhost:8080/test1?id=1
 * */
@RequestMapping(value = "/test1",method=RequestMethod.GET)
public void test1(@RequestParam("id") String id){
    System.out.println("id:"+id);    
}

/*
 * 第二种:以实体类接收
 * {"username": "zhangsan","id":"2"}
 * */
@RequestMapping(value = "/test2",method=RequestMethod.POST)
public void test1(@RequestBody User user) throws Exception{
    System.out.println("username:"+user.getUsername());    
}

/*
 * 第三种:以Map接收
 * {"username": "zhangsan","id":"2"}
 * */
@RequestMapping(value = "/test3",method=RequestMethod.POST)
public void test3(@RequestBody Map<String, String> map) throws Exception{
    System.out.println("username:"+map.get("username"));    
}

/*
 * 第四种:以List接收
 * [{"username": "zhangsan","id":"2"},{"username": "lisi","id":"1"}]
 * */
@RequestMapping(value = "/test4",method=RequestMethod.POST)
public void test4(@RequestBody List<User> list) throws Exception{
    for(User user:list){
        System.out.println("username:"+user.getUsername());
    }
}

/*
 * 第五种:以JSON对象接收
 * {"username": "zhangsan","id":"2","role":{"rolename":"admin"}}
 * */
@RequestMapping(value = "/test5",method=RequestMethod.POST)
public void test5(@RequestBody JSONObject json) throws Exception{
    System.out.println("username:"+json.getString("username"));    
    System.out.println("rolename:"+json.getJSONObject("role").getString("rolename"));
}}

如若转载,请注明出处:开源字节   https://sourcebyte.vip/article/324.html

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

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

相关文章

搭建 Qt6 开发环境

作者&#xff1a; 一去、二三里 个人微信号&#xff1a; iwaleon 微信公众号&#xff1a; 高效程序员 Qt 是一个跨平台的 C 应用程序开发框架&#xff0c;它提供了丰富的组件库和工具&#xff0c;使得开发人员可以在各种平台上轻松地开发 GUI 应用程序。 由于我们的教程 《细说…

嵌入式设备应用开发(发现需求和提升价值)

【 声明:版权所有,欢迎转载,请勿用于商业用途。 联系信箱:feixiaoxing @163.com】 很多做技术的同学,都会陷入到技术的窠臼之中。对于如何做具体的产品、实现具体的技术,他们可能很感兴趣。但是做出来的东西做什么用,或者说是有没有竞争力,事实上他们不是很关心…

二叉搜索树-----红黑树

✅<1>主页&#xff1a;我的代码爱吃辣&#x1f4c3;<2>知识讲解&#xff1a;数据结构——红黑树☂️<3>开发环境&#xff1a;Visual Studio 2022&#x1f4ac;<4>前言&#xff1a;红黑树也是一颗二叉搜索树&#xff0c;其作为map&#xff0c;set的底层…

AttributeError: module ‘torchvision.io.image‘ has no attribute ‘ImageReadMode‘

我的torch和torchvision版本 import torch torch.__version__‘1.7.1cu110’ import torchvision torchvision.__version__‘0.8.2cu110’ 原代码 mode torchvision.io.image.ImageReadMode.RGB labels.append(torchvision.io.read_image(os.path.join(voc_dir, Segmentat…

文生图模型之Stable Diffusion

原始文章地址 autoencoder CLIP text encoder tokenizer最大长度为77&#xff08;CLIP训练时所采用的设置&#xff09;&#xff0c;当输入text的tokens数量超过77后&#xff0c;将进行截断&#xff0c;如果不足则进行paddings&#xff0c;这样将保证无论输入任何长度的文本&…

Vue2向Vue3过度核心技术综合案例

目录 1 面经基础版-案例效果分析1.面经效果演示2.功能分析3.实现思路分析&#xff1a;配置路由功能实现 2 面经基础版-一级路由配置3 面经基础版-二级路由配置1.使用场景2.语法3.代码实现 4 面经基础版-二级导航高亮1.实现思路2.代码实现 5 面经基础版-首页请求渲染1.步骤分析2…

新开通的抖店体验分太低,达人不愿意合作怎么办?解决办法如下

我是王路飞。 找达人带货的玩法是最适合新手抖店商家的&#xff0c;同时也是最适合长线去玩的方法。 但是新手前期找达人的时候&#xff0c;会有一个难点&#xff0c;就是自己的抖店因为是新开通的&#xff0c;所以要么没体验分&#xff0c;要么就是体验分太低了&#xff0c;…

崔东树:汽车行业正在迎来令人兴奋的时代,智能座舱推动私车普及

随着新能源汽车和智能座舱的不断发展&#xff0c;汽车行业正经历着一场革命性的变革。当前&#xff0c;不仅汽车电动化的进程在加速推进&#xff0c;智能座舱的升级与完善也成为了行业的热点话题。崔东树指出&#xff0c;随着汽车电动化和智能化的发展&#xff0c;智能座舱的快…

学习高等数学需要的初等数学知识

文章目录 名词解释常用希腊字符读音幂、根式和对数常用的三角函数值三角函数变换一元二次方程求解充分条件和必要条件切线方程、斜率和法线隐函数极坐标排列组合 名词解释 教材中存在着许多熟悉且陌生的词汇&#xff0c;作者在此进行了整理&#xff1a; 概念&#xff1a;概念…

开始MySQL之路—— DDL语法、DML语法、DQL语法基本操作详解

DDL语法 DDL&#xff08;Data Definition Language&#xff09; 数据定义语言&#xff0c;该语言部分包括以下内容。 对数据库的常用操作 对表结构的常用操作 修改表结构 对数据库的常用操作 1: 查看当前所有的数据库 show databases; 2&#xff1a;创建数据库 create dat…

Linux下的Shell基础——流程控制(三)

前言&#xff1a; 每门编程都有它独特的语法&#xff0c;比如C语言&#xff0c;Java等编程语言&#xff0c;有相同的地方也有自己独特的地方&#xff0c;但都离不开变量、运算符&#xff0c;条件判断、循环和函数这几个地方的学习&#xff0c;下面就让我们学习一下shell编程里…

CRM软件的功能与报价如何制定?

CRM软件很贵吗&#xff1f;CRM价格与系统功能、部署方式、用户数量、附加服务等有关。当然&#xff0c;不同的CRM厂商&#xff0c;也会有不同的定价模式。下面我们就来说说决定CRM系统报价的几个因素。 系统功能&#xff1a; CRM软件的功能越全面、越强大&#xff0c;其定价也…

携手共进:OpenAI与ScaleAI开展合作,为企业增强GPT模型微调功能

8 月 26 日消息&#xff0c;OpenAI 近日发布新闻&#xff0c;除了与Scale AI 展开深度合作外&#xff0c;OpenAI 还宣布他们计划扩展GPT系列的大语言模型。通过与Scale AI 的合作&#xff0c;OpenAI 能够在企业环境中定制GPT-3.5 Turbo和即将发布的GPT-4&#xff0c;以满足不同…

Typora上使用Mermaid语法展示流程图、时序图、甘特图

你已经安装Typora并打开了一个新文档后,可以按照以下详细步骤在Typora上使用Mermaid语法展示流程图、时序图、甘特图 流程图 使用graph LR声明开始,并使用箭头和连接符号定义节点之间的关系。例如,A --> B表示从节点A指向节点B的箭头连接。graph TB A[界面布局图] -->…

npm 卸载 vuecli后还是存在

运行了npm uninstall vue-cli -g&#xff0c;之后是up to date in&#xff0c;然后vue -V&#xff0c;版本号一直都在&#xff0c;说明没有卸载掉 1、执行全局卸载命令 npm uninstall vue-cli -g 2、删除vue原始文件 查看文件位置&#xff0c;找到文件删掉 where vue 3、再…

魏副业而战:闲鱼卖货做什么类目好?

我是魏哥&#xff0c;与其躺平&#xff0c;不如魏副业而战&#xff01; 做闲鱼&#xff0c;有人做高客单价的&#xff0c;也有人做低客单价的。 之前魏哥有做宠物产品&#xff0c;利润低&#xff0c;每单赚几元&#xff0c;做的很累&#xff0c;但做过一段时间后发现有很多复…

左耳朵耗子:TCP 的那些事儿(上)

原文地址&#xff1a;https://coolshell.cn/articles/11564.html TCP是一个巨复杂的协议&#xff0c;因为他要解决很多问题&#xff0c;而这些问题又带出了很多子问题和阴暗面。所以学习TCP本身是个比较痛苦的过程&#xff0c;但对于学习的过程却能让人有很多收获。关于TCP这个…

nrm管理源仓库及发布私人npm包

使用nrm管理源及切换源仓库 1.安装nrm源管理器 npm install nrm -g2.查看目前现有的源仓库 通过 nrm ls 查看现有的源 nrm ls 输出&#xff1a;这是目前现有的源 3.切换不同的源 可以通过 nrm use xxx&#xff08;源仓库名&#xff09;来切换不同的源地址 nrm use taobao…

激活函数总结(二十):激活函数补充(SQNL、PLU)

激活函数总结&#xff08;二十&#xff09;&#xff1a;激活函数补充 1 引言2 激活函数2.1 Square nonlinearity (SQNL)激活函数2.2 Piecewise Linear Unit (PLU)激活函数 3. 总结 1 引言 在前面的文章中已经介绍了介绍了一系列激活函数 (Sigmoid、Tanh、ReLU、Leaky ReLU、PR…

【Android】相对布局(RelativeLayout)最全解析

【Android】相对布局&#xff08;RelativeLayout&#xff09;最全解析 一、相对布局&#xff08;RelativeLayout&#xff09;概述二、根据父容器定位三、根据兄弟控件定位 一、相对布局&#xff08;RelativeLayout&#xff09;概述 相对布局&#xff08;RelativeLayout&#x…