Java Servlet生成Json格式数据

2023-11-17

Java Servlet生成Json格式数据

分类: Web JAVA2013-09-17 14:38 4805人阅读 评论(1) 收藏 举报

在Servlet中覆写doGet方法,是用JSONStringer 类:

[java] view plaincopyprint?

  1. protected void doGet(HttpServletRequest req, HttpServletResponse resp)  

  2.         throws ServletException, IOException {  

  3.     // TODO Auto-generated method stub  

  4.     String IdList = Dao.getAllTourId();  

  5.     String[] strID = IdList.split("#");  

  6.       

  7.     JSONStringer stringer = new JSONStringer();  

  8.     int tID;  

  9.     String tourName, tourList, tourIdList;  

  10.   

  11.     try {  

  12.         stringer.array();  

  13.         for(int i = 0; i < strID.length; i++) {  

  14.             tID = Integer.parseInt(strID[i]);  

  15.             tourName = Dao.getTourName(tID);  

  16.             tourList = Dao.getTourList(tID);  

  17.             tourIdList = Dao.getPlaceIdList(tID);  

  18.             stringer.object().key("tID").value(tID).  

  19.                 key("name").value(tourName).  

  20.                 key("tourList").value(tourList).  

  21.                 key("tourIDList").value(tourIdList).endObject();  

  22.         }  

  23.         stringer.endArray();  

  24.     } catch (JSONException e) {  

  25.         e.printStackTrace();  

  26.     } catch (Exception e) {  

  27.         e.printStackTrace();  

  28.     }  

  29.     resp.getOutputStream().write(stringer.toString().getBytes("UTF-8"));  

  30.     resp.setContentType("text/json; charset=UTF-8");  

  31. }  


如果其中是用了HashMap类, 则如下:

[java] view plaincopyprint?

  1. protected void doGet(HttpServletRequest req, HttpServletResponse resp)  

  2.         throws ServletException, IOException {  

  3.     // TODO Auto-generated method stub  

  4.       

  5.     String param = req.getParameter("param");  

  6.     TourManager tm = new TourManager();  

  7.     JSONStringer stringer = new JSONStringer();  

  8.       

  9.     if(param.equals("Place")) {  

  10.         HashMap mapPlace = tm.getPlace();  

  11.           

  12.         try {  

  13.             stringer.array();  

  14.               

  15.             stringer.object();  

  16.             Iterator it = mapPlace.keySet().iterator();  

  17.             while(it.hasNext()) {  

  18.                 Object key = it.next();  

  19.                 stringer.key((String)key).value(mapPlace.get(key));  

  20.             }  

  21.             stringer.endObject();  

  22.               

  23.             stringer.endArray();  

  24.         } catch (JSONException e) {  

  25.             // TODO Auto-generated catch block  

  26.             e.printStackTrace();  

  27.         }  

  28.     }  

  29.     else if(param.equals("Tour")) {  

  30.         HashMap mapTour = tm.getTours();  

  31.           

  32.         try {  

  33.             stringer.array();  

  34.               

  35.             stringer.object();  

  36.             Iterator it = mapTour.keySet().iterator();  

  37.             while(it.hasNext()) {  

  38.                 Object key = it.next();  

  39.                 stringer.key((String)key).value(mapTour.get(key));  

  40.             }  

  41.             stringer.endObject();  

  42.             stringer.endArray();  

  43.         } catch (JSONException e) {  

  44.             e.printStackTrace();  

  45.         }  

  46.     }  

  47.       

  48.     resp.getOutputStream().write(stringer.toString().getBytes("UTF-8"));  

  49.     resp.setContentType("text/json; charset=UTF-8");  


转载于:https://my.oschina.net/u/1049180/blog/335787

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Java Servlet生成Json格式数据 的相关文章

  • python 中使用 scipy 截断正态分布

    我正在尝试使用截断正态分布scipy在Python3 我想做一些简单的事情 绘制以 0 5 为中心 范围从 0 到 1 的截断法线的 pdf 我有以下代码行 from scipy import truncnorm import matplo
  • 中断QThread睡眠

    我想知道如何暂停 QThread 然后在收到信号时恢复 我已阅读并知道我可以做这样的事情 def run self self ready False while not self ready self sleep 1 QtCore Slot
  • SQLite 64位整数在jooq中被识别为int

    我有一个与 jOOQ 一起使用的 SQLite 数据库 当我使用 jOOQ 的代码生成工具时 它会按预期构建所有表和记录类 然而 所有的 SQLiteINTEGER列变成java lang Integer生成的代码中的字段 问题是 SQLi
  • 如何使 JFileChooser 仅显示具有某些特定名称 Java 的文件夹

    有什么方法可以让 JFileChooser 加载时仅显示名称为 Hello 的文件夹 这是我的代码 它显示所有文件夹以及扩展名为 py 和 java 的文件 我想添加文件夹名称限制 FileNameExtensionFilter filte
  • 使用 JavaFX 将可执行 Jar 限制为一个窗口

    我正在通过构建 JavaFX 应用程序E fx 剪辑 and Java场景生成器 基本功能是登录窗口 登录后 将打开新窗口 然后登录窗口消失 目前还处于原型阶段 用完eclipse后 我想要的功能都有了 启动时显示登录窗口 代码如下 Ove
  • 您能否从函数、args 和 kwargs 确定变量将如何分配?

    我有一些样板逻辑 我想包装几个具有相同可选关键字的函数 现在看起来像下面的代码 但是 这仅处理 opt key 作为关键字传递的情况 而不是按位置传递 解决这个问题的一种方法是了解如何解决参数分配 是否有一些元函数接受函数 args 和 k
  • Django 自定义查询集过滤器

    在 Django 中 是否有一种标准方法可以为查询集编写复杂的自定义过滤器 就像我能写的一样 MyClass objects all filter field val 我想做这样的事情 MyClass objects all filter
  • Django:上传前调整图像大小

    我想调整图像大小 Pillow 在上传之前 我在下面编写了代码但不起作用 并得到错误 myapp list 处的属性错误 坚定的 请求方式 POST 请求网址 http 127 0 0 1 8000 myapp list http 127
  • os.path.expanduser("~") 的替代方案?

    在Python 2 7 x中 os path expanduser Unicode 已损坏 这意味着如果 的扩展中包含非 ASCII 字符 则会出现异常 http bugs python org issue13207 http bugs p
  • 将 Python 3 的“范围”“向后移植”到 Python 2 是一个坏主意吗?

    我的一门课程要求用 Python 完成作业 作为练习 我一直使用如下脚本确保我的程序可以在 Python 2 和 Python 3 中运行 bin bash Run some PyUnit tests python2 test py pyt
  • 当 javadoc 未附加到依赖项时,如何将 javadoc 引用到 Maven 的 eclipse 插件中的依赖项

    我在开发中使用 Eclipse Maven 和 Java 我使用 Maven 下载依赖项 jar 文件和 javadoc 如果可用 并使用 Maven 的 eclipse 插件为 Eclipse 生成 project 和 classpath
  • 如何在 Spring GCP 中订阅多个 Google PubSub 项目?

    我想在 Spring Boot 应用程序中订阅多个 Google Cloud PubSub 项目 阅读完相关问题后如何使用 Spring Cloud 在一个 Spring Boot 应用程序中连接 配置两个 pubsub gcp 项目 ht
  • Maven编译错误:包不存在

    我正在尝试向现有企业项目添加 Maven 支持 这是一个多模块项目 前 2 个模块编译和打包没有问题 但我面临编译错误 我尝试在多个模块中使用相同的依赖项 我的结构是 gt parent gt pom xml gt module 1 gt
  • 如何强制 Spark 执行代码?

    我如何强制 Spark 执行对 map 的调用 即使它认为由于其惰性求值而不需要执行它 我试过把cache 与地图调用 但这仍然没有解决问题 我的地图方法实际上将结果上传到 HDFS 所以 它并非无用 但 Spark 认为它是无用的 简短回
  • 如何在 VSCode 中热重载 Tomcat 服务器

    我正在从 Eclipse IDE VSCode 分别用于编码 Java servlet 和 HTML CSS JS 网页 迁移到仅使用 Visual Studio Code 因为它的轻量级 我为 VSCode 安装了几个 Java 扩展 R
  • 如何为用户的活动设置计时器?

    如果用户在 5 小时内停止工作 我需要执行特定的方法 假设用户已登录 但他在 5 小时内没有向数据库的特定表添加任何记录 任何时候用户将记录添加到指定的表中 该特定用户的计时器都应该重置 否则它将继续运行 如果达到 5 小时 应用程序应显示
  • 将glade接口放入python中

    我在 Glade 中制作了一个 gui 我想将其放入 python 程序中 我正在调整我在网上找到的教程中的说明 以将其加载到我的林间空地文件中 http www pygtk org articles pygtk glade gui Cre
  • 使用 PyCharm 分析 Django

    即使在开发环境中 我的应用程序也相当慢 所以我想找出是什么导致它变慢 以便我可以尝试修复它 我了解调试工具栏 根据它的报告 数据库查询和下载的源都不是问题 所以它一定是业务逻辑 但是 我无法使用 Django 服务器运行 PyCharm 分
  • 带有 graphviz_layout 的水平树

    在Python中 使用networkx 我可以用以下方法绘制垂直树 g nx balanced tree 2 4 pos nx graphviz layout g prog dot nx draw g pos labels b all no
  • eclipse.ui.menus 的名称过滤器

    我有一个菜单贡献 通过实现org eclipse ui menus扩展点 我想仅为特定文件扩展名 例如 pld 提供此菜单贡献 但我不知道如何使用 visibleWhen 来做到这一点 有任何想法吗 更新 到目前为止我的扩展点

随机推荐

  • LLVM编译

    欢迎到我的博客来阅读这篇文章 https qiu weidong github io 2022 05 01 llvm build Windows下编译LLVM 安装Visual Studio 首先需要下载Visual Studio Inst
  • JAVA与C++的区别详解

    转自 微点阅读 https www weidianyuedu com JAVA和C 都是面向对象语言 也就是说 它都能够实现面向对象思想 封装 继乘 多态 而由于c 为了照顾大量的C语言使用者 而兼容了C 使得自身仅仅成为了带类的C语言 多
  • 火山翻译亮相飞书未来无限大会,打造全新翻译体验

    5月19日下午 2021春季飞书未来无限大会在北京召开 火山翻译携带火山同传 VolctransGlass AR智能翻译眼镜现身大会展厅 让观众了解前沿翻译技术和方案 并体验机器翻译如何在日常生活 工作和重要会议上帮助人们实现无障碍交流 本
  • 2019.9.27 csp-s模拟测试53 反思总结

    这个起名方式居然还有后续 为什么起名不是连续的 T1想了半天 搞出来了 结果数组开小 其实是没注意范围 T2概率期望直接跳 后来翻回来写发现自己整个理解错了期望的含义 何 T3错误想到赛道修建结果来了个错误贪心 关于T2破罐子破摔输出k居然
  • SPSS知识点复习

    一 T检验 对连续变量使用的方法 T检验 方差检验 1 均值 Means 过程 完成数据分组输出描述统计量 2 T检验 用t分布理论来推论差异发生的概率 从而比较两个平均数的差异是否显著 前提 总体服从正态分布 样本量不超过30 3 单样本
  • [Bug集合]terminate called after throwing an instance of 'std::bad_alloc' what(): std::bad_alloc

    terminate called after throwing an instance of std bad alloc what std bad alloc 超内存了兄dei 我出现这个问题是因为读入了大量图片 结果系统提示这个信息
  • 解决flex布局中 space-between方法的排版问题

    flex布局中 justify content space between方法的排版问题 flex给我们的布局带来了很大的方便 但有时候也会碰到一些问题 比如space between最后一行元素的排列问题 问题 假如我们有8个元素 ul
  • Lethean结点搭建

    文章目录 结点搭建 日志位置 钱包地址 Lethean官网 https github com LetheanMovement lethean github地址 https github com LetheanMovement lethean
  • 华为OD机试真题-热点网站统计-2023年OD统一考试(B卷)

    题目描述 企业路由器的统计页面 有一个功能需要动态统计公司访问最多的网页URL top N 请设计一个算法 可以高效动态统计Top N的页面 输入描述 每一行都是一个URL或一个数字 如果是URL 代表一段时间内的网页访问 如果是一个数字N
  • String.format()方法使用详解技巧

    一 时间切割 String year String format tY 2020 04 30 2020 String month String format tm 2020 04 30 04 String day String format
  • [454]bokeh之bokeh.layouts

    如果希望在同一张图上显示多个图像 可以使用bokeh layouts类中的方法 row column gridplot widgetbox layout row row 的作用是将多个图像以行的方式放到同一张图中 from bokeh io
  • 出现Command ‘locate‘ not found,but can be installed with:apt install mlocate解决方法

    出现Command locate not found but can be installed with apt install mlocate解决方法 在使用Ubuntn出现Command locate not found but can
  • 以太坊区块链浏览器搭建

    链客 专为开发者而生 有问必答 此文章来自区块链技术社区 未经允许拒绝转载 当然 读者若要实践 那么电脑上必须已经搭建好了geth 并且命令 geth version 能显示版本信息 针对以太坊各个链 私链 公链 测试链 都可以用该篇文章来
  • Keil MDK误将Project窗口关了的解决办法,窗口视图重置

    在使用MDK时 误将Project窗口或者其他窗口关了 点击view 选择对应的窗口即可 或者点击Window窗口 选择Reset View to Defaults 再点击Reset即可实现窗口的重置
  • 项目管理:要做一项任务,不要做一堆事儿

    作为项目经理 我们最终的任务和目标是把项目高标准的完成 在完成最终目标的过程中离不开项目成员的协作配合和任务工作的分配 只有项目组成员各司其职 高效的完成各自的工作 才能保证项目的效率和质量 那么如何保证项目组成员在完成各自任务的时候既能保
  • 打包vue前端docker镜像

    1 安装好docker环境 docker v 查看是否成功 2编写Dockerfile文件 下面这个dokcerfile的RUN指令不好 当有多个命令需要执行的时候 可以用换行符和连接符隔开 而不是写多个RUN指令 因为那样会增加镜像的构建
  • Go基础(包、变量和函数):开启Go语言之旅

    开启Go语言之旅 Go编程语言是一个开源项目 可以让程序员提高工作效率 Go是富有表现力 简洁 干净和高效的 其并发机制使编写充分利用多核和联网机器的程序变得容易 而其新颖类型系统则可实现灵活的模块化程序构建 快速编译为机器代码 但具有垃圾
  • apple资讯

    6 月 10 日消息 macOS 12 Monterey 支持通过 AirPlay 将内容发送到第二台 Mac 上 用户还可以使用该功能进行屏幕镜像 将一台备用机器变成一个外部显示器 除了使用 AirPlay 无线方式外 macOS 12
  • MATLAB雷达空时自适应处理

    空时自适应处理是一个用来描述同时处理空域和时域的自适应阵列的术语 信号的空域分量由阵列传感器收集 与所有阵列工作相同 而信号的时域分量用每个阵列传感器后等间隔延时单元产生 为此目的 一个尺寸N阵列有N个子通道 每个传感器后面对应一个 在每个
  • Java Servlet生成Json格式数据

    2019独角兽企业重金招聘Python工程师标准 gt gt gt Java Servlet生成Json格式数据 分类 Web JAVA2013 09 17 14 38 4805人阅读 评论 1 收藏 举报 在Servlet中覆写doGet