前后端分离的思想开发 后端给前端传不同类型的json数据
(资料图片仅供参考)
最近,我和我的一位前端小伙伴合作开发一个我们在学校的科研项目,我们打算用前后端分离的思想来开发,作为一名没有开发经验大四的学生,在开发中遇到不少问题,这个专栏就用来记录,我们在开发过程遇到了哪些问题,以及这个问题是如何处理的,当然主要是后端的问题,毕竟我是做后端的嘛。
好啦废话不多说,开始正文。
问题描述:
首先我遇到的第一个问题就是,在给前端传json数据。我们前后端数据通信一般使用json格式的数据来传递, 那么后端如何给前端传值,以及我们有那么多的数据类型,都是怎么传递的呢?
public class JackSonTest { //json传送一个实例对象 @Test public void test1() throws Exception { Person p = new Person(); p.setName("Jack"); p.setAge(22); p.setGender("男"); //2.创建ObjectMapper ObjectMapper mapper = new ObjectMapper(); //3.转换 String s = mapper.writeValueAsString(p); System.out.println(s); //写入到指定文件中 //mapper.writeValue(new File("d://a.txt"),p); //写入到指定流中 //mapper.writeValue(new FileOutputStream("d://a.txt"),p); //mapper.writeValue(new FileWriter("d://a.txt"),p); } @Test public void test2() throws JsonProcessingException { Person p = new Person(); p.setName("Rose"); p.setAge(22); p.setGender("女"); p.setBirthday(new Date()); ObjectMapper mapper = new ObjectMapper(); String json = mapper.writeValueAsString(p); System.out.println(json); } //json传送一个list @Test public void test3() throws JsonProcessingException { Person p = new Person(); p.setName("Haker"); p.setAge(33); p.setGender("男"); p.setBirthday(new Date()); Person p1 = new Person(); p1.setName("Shelly"); p1.setAge(33); p1.setGender("男"); p1.setBirthday(new Date()); Person p2 = new Person(); p2.setName("Bale"); p2.setAge(33); p2.setGender("男"); p2.setBirthday(new Date()); Listlist = new ArrayList<>(); list.add(p); list.add(p1); list.add(p2); ObjectMapper mapper = new ObjectMapper(); String json = mapper.writeValueAsString(list); System.out.println(json); } //json传送一个map @Test public void test4() throws JsonProcessingException { Mapmap = new HashMap(); map.put("name", "Magie"); map.put("age", 22); map.put("gender", "女"); ObjectMapper mapper = new ObjectMapper(); String json = mapper.writeValueAsString(map); System.out.println(json); } //json字符串转换为一个实例对象 @Test public void test5() throws JsonProcessingException { String js = "{\"gender\":\"男\",\"name\":\"Tokky\",\"age\":22}"; ObjectMapper mapper = new ObjectMapper(); Person person = mapper.readValue(js, Person.class); System.out.println(person); }}
问题解决:
@Controllerpublic class FileController { @ResponseBody @RequestMapping("/test") public String file() throws JsonProcessingException { Listlist = new ArrayList<>(10); list.add(new MyFile("01", new Date())); list.add(new MyFile("02", new Date())); list.add(new MyFile("03", new Date())); list.add(new MyFile("04", new Date())); list.add(new MyFile("05", new Date())); list.add(new MyFile("06", new Date())); list.add(new MyFile("07", new Date())); list.add(new MyFile("08", new Date())); list.add(new MyFile("09", new Date())); list.add(new MyFile("10", new Date())); list.add(new MyFile("11", new Date())); ObjectMapper mapper = new ObjectMapper(); String json = mapper.writeValueAsString(list); return json; }}
总结:
通过查阅资料学习;解析,转换josn数据需要依赖第三方jar包:Jackson Databind、Jackson Core、Jackson Annotations1.准备json数据,(对象、集合、字符串)2.创建ObjectMapper对象3.调用writeValueAsString方法如果是解析json字符串调用readValue方法
标签:
相关推荐:
最新新闻:
- C、C++和C#有什么区别?三个小故事带你快速了解C、C++和C#的区别 全球快资讯
- 9-10个月的宝宝喜欢看什么样的图?详情介绍|世界报道
- 每日聚焦:解析M3U8索引文件 下载M3U8视频文件的解析
- 前后端分离的思想开发 后端给前端传不同类型的json数据
- 最新手机壳价格怎样?最新手机壳报价大全
- 视讯!ios8越狱后必装插件有哪些?ios8越狱后必装插件汇总
- 【技术】Unity3d的布局 SceneView
- 视频会议系统是什么意思?有哪些功能?-当前速看
- vr场景怎么做?VR视频制作教程|每日信息
- 微信塞班版为什么退出后会自动启动?问题出在哪里?
- Android 代码中文字在手机上显示乱码怎么办?解决方法_环球今亮点
- Camera2API的基本功能笔记 Android实现Camera2预览和拍照效果
- abb变频电机怎么样?abb变频电机价格是多少?
- 英语字母表你会背吗?26个英语字母表及字母音标
- 【干货】互联网广告基本术语、计费方式及流程-全球即时看
- 联想笔记本一键恢复7.0怎么用?详细方法步骤-天天快看点
- Word文档中如何输入汉字的偏旁部首?输入汉字的偏旁部首方法
- 一次汇报的内容有多页 如何用母版做美化?
- 世界速看:什么叫信息化管理?信息化管理相关介绍
- 苹果颠覆MP3 手机业的“创新”是怎么做到的?|环球报道
- 地磁场的基本形态与演化 你知道多少?
- bose家庭影院好吗?bose家庭影院有哪些优势?
- 世界速读:金松冰箱怎么样?金松冰箱多少钱?详细介绍
- 如何实现国产化替代?博思得凭借新一代OX平台技术做到了_世界速讯
- PS分配内存不足怎么办?解决方案来了
- 如何搭建个人网站?创建网站的第一步是什么?
- 焦点要闻:camel_Apache Camel日志组件示例
- 全球热门:电商数据分析中的基础分析项目——京东订单数据预处理
- 天天微头条丨摩托罗拉xt532怎么刷机?摩托罗拉xt532刷机教程介绍
- 焦点速讯:高效空气过滤器有什么作用?高效空气过滤器作用介绍
- 人工生命中最关键的一步——虚拟细胞的构建|全球今日报
- GE带以太网接口的CPU协议有哪些特性?详情介绍
- nokia5300怎么刷机?nokia5300刷机教程及手机优势
- 百度闪付如何添加银行卡?百度闪付添加银行卡方法
- 环球观热点:反间计你知道吗?史上最经典的10大反间计
- getParameter和getAttribute的区别是什么?区别介绍 全球最资讯
- 如何在Win10登陆界面添加签名?Win10登陆界面添加签名方法
- 中国电池企业前十名有哪些?中国电池企业前十名介绍
- 中国互联网10大平台 2010年中国互联网十大开放平台大盘点
- 怎么打开优酷的kux格式?kux转换成mp4的方法 快看
- 常用的数学函数 数据分析最常用的excel函数公式大全 世界快看
- 德国曼瑞德温控器怎么样?德国曼瑞德温控器介绍
- d3dx9_34.dll是什么?系统d3dx9_34.dll错误会带来什么危害?|每日播报
- 华为nova5手机无法开机怎么办?华为nova5手机维修
- 什么是实数?数轴上的点与实数是什么意思?
- 下载软件哪个好?迅雷、迅雷和比特彗星下载工具介绍 全球微动态
- 科幻小说作家赫内·巴赫札维勒:时间旅行的悖论-全球滚动
- 什么是pdi检测?Pentaho数据集成的步骤
- 速递!FTP中文件名乱码问题怎么解决?Serv-U8字符编码的设置
- 如何使用任务计划程序来定时启动?黑客干货教程!-焦点消息
- 颜值超高!索尼 Xperia 1 V 渲染图曝光
- 54岁休·杰克曼老当益壮:下海冬泳不带怕!
- 林志颖术后首复出:恢复良好 面部无任何疤痕-天天滚动
- 观速讯丨超“小行星”撞地球今日中午上演 法英荷均肉眼可见
- 《全职猎人》全新舞台剧艺图拍摄花絮 5月12日开演:今热点
- 泡饭寿司没人吃,大米为何在日韩失宠? 焦点热议
- 医保卡少了几十元,为啥年轻人焦虑了? 天天快资讯
- 全球微动态丨至强散热,比纸还薄!一加Ace 2 x 瑞声科技量身定制超薄超大VC
- 卢伟冰出手了!512G 版 Redmi K60 降至 3000 元以内_世界新动态
- 摄像头绝了!索尼Xperia 1 V渲染图曝光 观察
- 全球要闻:ChatGPT爆火:谷歌开始检查Bard AI代码数据
- 环球即时:小米 13 Lite 手机渲染图曝光:采用灵动岛设计
- 《CSGO》G2夺冠IEM卡托维兹 尼公子四进决赛终圆梦|全球速看
- 女子多设备同时登腾讯视频账号被封 解锁需超级会员_报资讯
- 世嘉新作《404 GAME RE:SET》公开新人物介绍 2023年春上线
- 开发商十分忙碌 《控制2》已进入概念验证阶段-热门看点
- 环球热讯:封杀《霍格沃茨之遗》的论坛运营者狂玩本作:太香了
- 【环球播资讯】情人节送巧克力,是不是没诚意?
- 聚焦:融资丨「派迅智能」完成数亿元B轮融资,赛富投资基金领投
- 年轻人选择“包地创业”,这门生意究竟有没有前景?
- 环球新资讯:“吃得多,还是瘦?”妻子一句话,丈夫查出大问题
- 赚钱新招儿!苹果的iPhone硬件订阅可能会在三月份到来_当前热议
- iPhone 15都没这功能!工程师通过添加USB-C制造双端口iPhone-环球快看点
- “灵动岛”双前摄设计!小米13 Lite曝光:天天关注
- 入职1小时被HR告知招错人补偿50元 当事人:很无奈