目前比较流行的公开API 大多都是返回json格式字符串。如何创建自己的基于http请求返回json数据的api?

如下:

返回JSON字符串的API

相关包:fastjson-1.2.2.jar

方式(一)基于SpringMVC

控制层Action代码:

@RequestMapping("/getJsonTest")

@ResponseBody

public String getJsonTest(HttpServletRequest request,

HttpServletResponse response) throws IOException {

JSONObject result = new JSONObject();

if(StringUtils.isBlank(request.getParameter("phone"))){

result.put("status", "0");

result.put("msg", "phone字段不能为空");

}else{

result.put("status", "1");

JSONArray onearray= new JSONArray();

JSONObject oneJsonObject= new JSONObject();

oneJsonObject.put("myMap1", "一个map");

oneJsonObject.put("myMap2", "一个map");

result.put("oneMap",oneJsonObject );

onearray.add(0, "一个llist第一条");

onearray.add(1, "第二条");

result.put("oneList", onearray );

result.put("msg", "测试");

}

return result.toJSONString();//返回的是一个json字符串

}

(二)直接用Selvlet 来实现:

public class JsonTestServlet extends HttpServlet {

public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {

JSONObject result = new JSONObject();

response.setContentType("text/html;charset=utf-8");

if(StringUtils.isBlank(request.getParameter("phone"))){

result.put("status", "0");

result.put("msg", "phone字段不能为空");

}else{

result.put("status", "1");

JSONArray onearray= new JSONArray();

JSONObject oneJsonObject= new JSONObject();

oneJsonObject.put("myMap1", "一个map");

oneJsonObject.put("myMap2", "一个map");

result.put("oneMap",oneJsonObject );

onearray.add(0, "一个llist第一条");

onearray.add(1, "第二条");

result.put("oneList", onearray );

result.put("msg", "测试");

}

response.getWriter().print(result.toJSONString());

}

public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {

}

网页打开:http://localhost:8081/XXX/getJsonTest

显示{"msg":"phone字段不能为空","status":"0"}

http://datachina.win/app1.5/appTestServlet?phone=15514390110

显示:

{"msg":"测试","oneList":["一个llist第一条","第二条"],"oneMap":{"myMap1":"一个map","myMap2":"一个map"},"status":"1"}

接收解析json数据

包:fastjson.

public static void main(String[] args) throws Exception {

Object result=esayGet("http://datachina.win/app1.5/appTestServlet?phone=15514390110", "utf-8");

System.out.println( result);

JSONObject  object = JSONObject.parseObject(result.toString());

JSONArray array = JSONArray.parseArray(object.getString("oneList"));

JSONObject  oneMap = JSONObject.parseObject(object.getString("oneMap"));

System.out.println(oneMap.get("myMap1"));

System.out.println(array.get(0));

}

{"msg":"测试","oneList":["一个llist第一条","第二条"],"oneMap":{"myMap1":"一个map","myMap2":"一个map"},"status":"1"} 一个map 一个llist第一条

html 网络请求 json数据,写一个json格式API,http请求接收json数据相关推荐

  1. 对tomcat来说,每一个进来的请求(request)都需要一个线程,直到该请求结束。

    这段时间折腾了哈java web应用的压力测试,部署容器是tomcat 7.期间学到了蛮多散碎的知识点,及时梳理总结,构建良好且易理解的知识架构把它们组织起来,以备忘. 对web应用开发者来说,我们很 ...

  2. 如何写一个健壮且高效的串口接收程序?

    正文:13923字  阅读时间:35分钟   建议先马后看 导读:学单片机的大概最先.最常写的通信程序应该就是串口程序了,但是如何写出一个健壮且高效的串口接收程序呢?接下来鱼鹰将根据多年的开发经验教你 ...

  3. controller接收json数据_答疑 | 前后端分离,如何接收json数据?

    1.颜老师,在前后端分离的项目中,后端如何接收前端发来的json数据?我记得是@RequestBody,但有时候会报错. 答:当使用SpringMVC接收json数据时,需要区分json的数据格式,具 ...

  4. 自己动手写一个分库分表中间件(三)数据源路由实现

    相关文章: 自己动手写一个分库分表中间件(一)思考 自己动手写一个分库分表中间件(二)数据源定义和分片代理层设计 排查项目中读写分离失效原因 小议 Java 内省机制 注:本文内容暂不涉及事务相关的问 ...

  5. 使用Node.js写一个简单的api接口

    引入Http模块 默认你已经安装了Node.js Node当中内置了Http模块: 可以使用 var http= require("http"); 复制代码 引入http模块: H ...

  6. 用Python写一个简单的api接口

    python框架有很多,例如:Flask,Django,FastAPI 等.本文将使用 Flask 来编写 API 接口. 安装Flask 首先,您需要安装 Flask: pip install fl ...

  7. [PHP]用PHP自己写一个zoomeye的api(偷懒必备quq)

    0x01 起因 因为手速慢,漏洞刷不过别人,一个个手补确实慢,所以想自己写一个api,一键抓取zoomeye的20页,然后就可以打批量了 ovo(真是太妙了!) 0x02 动工       1.抓包做 ...

  8. 使用IO流将数据库中数据生成一个文件,结果使用Notepad++打开部分数据结尾出现NUL...

    场景描述: 项目中通过java代码中从数据库中查询一系列数据,对数据做相应处理,然后通过字符流将数据写如一个新生成的文件中,将该项目部署在linux服务器上,最后生成的文件拿到本地使用notepad+ ...

  9. python github api_用python写一个GitHub Trending Api

    GitHub 给了开发者相当丰富的 API 接口 https://developer.github.com/v3/,包括认证,搜索,活动等接口,但就是没有提供获取 Trending 的接口.因此,需要 ...

  10. 编写图形界面程序,接受用户输入的5个浮点数据和一个文件目录名,将这五个数据保存在该文件中,再从文件中读取出来并且进行从大到小排序,然后再一次追加保存在该文件中。

    File(文件特征与管理):用于文件或者目录的描述信息,例如生成新目录,修改文件名,删除文件,判断文件所在路径等. InputStream(二进制格式操作):抽象类,基于字节的输入操作,是所有输入流的 ...

最新文章

  1. 一流科技CEO袁进辉:人工智能产业化困局和机遇 | 量子位·视点分享回顾
  2. 程序猿:喜欢与聪明的同事们在一起搞软件开发
  3. 第一次参加项目个人工作总结 (转)
  4. C#LeetCode刷题之#104-二叉树的最大深度​​​​​​​(Maximum Depth of Binary Tree)
  5. python更改当前工作路径
  6. MFC中使用自定义消息 .
  7. java tcp demo_详解Java使用TCP实现数据传输实例
  8. 【java学习之路】(javaWeb篇)008.VUE
  9. ITK简介与ITK Pipeline
  10. (day 36 - 滑动窗口)剑指 Offer 57 - II. 和为s的连续正数序列
  11. Php依赖其他模块,3. 强制模块依赖
  12. minimax算法和Alpha-Beta pruning实现英式跳棋
  13. 单片机学习笔记(持续更新中)
  14. 科技巨头们以 A 取名的时尚潮流
  15. poj 3268 Silver Cow Party(最短路dijkstra)
  16. 【操作系统】CPU是如何执行程序的?
  17. 操作系统的主要功能是什么
  18. 目标检测拉近镜头数据增强
  19. 中国队输球是有原因滴
  20. 解决win7和win8的64位系统安装NetAdvantage时总是提示%SystemDriver%inetpub\wwwroot错误的方法...

热门文章

  1. 一个好的大数据分析软件包含哪些功能
  2. linux安装python3.7
  3. 数据分析数据可视化(二)
  4. TypeScript算法专题 - [双链表1] - 双链的概念及其实现
  5. mysql常用的语句_MySQL常用语句集锦
  6. 客户端和服务器之间的信息结构,客户端和服务器之间的信息结构
  7. Spark内核解析之四:Spark 任务调度机制
  8. inteliJ maven 打包时把依赖的包一起打
  9. [笔记二]Essential JavaScript Design Patterns For Beginners
  10. Linux服务器---squid限制