精华内容
下载资源
问答
  • 目前主流的CS结构,数据都是通过RESTful风格接口形式呈现,不管是桌面级应用程序还是手机端,接口是我们获取数据的大多数选择,主流数据接口呈现形式主要是Json和Xml,后者目前基本渐行渐远。Json的轻量级和可读型...

    实现效果


    实现原因

    目前主流的CS结构,数据都是通过RESTful风格接口形式呈现,不管是桌面级应用程序还是手机端,接口是我们获取数据的大多数选择, 主流数据接口呈现形式主要是Json和Xml,后者目前基本渐行渐远。Json的轻量级和可读型成为了大多数公司及个人开发者的第一选择。
    主流公司在编写数据接口时大多通过框架实现,如RESTEasy、Retrofit等,在这里通过简单的java web代码写一个简单的接口项目例子供大家参考,后附项目源代码。



    实现步骤

    在Eclipse中新建项目JsonTest项目,项目结构如下,

    此处主要用到的类只有几个,其他类为Json测试用类,此处可以忽略。


    在lib下导入或在maven中引用gson-2.6.2.jar包和servlet-api.jar包。

    gson此处用于将持久化对象解析为Json,或将Json序列化为对象。

    servlet-api用于servlet相关类创建及API运用。



    关于gson,是Google开源项目下的一个Java Json解析工具包,具体使用及详细信息可以看这篇文章:Gson简要使用




    步骤一:新建测试用Model类

    新建新闻测试类News,主要用于数据模型测试显示,Json转换测试等,代码如下:

    import java.util.Date;
    
    public class News {
    
    	private int nId; // 新闻ID
    	private String title; // 新闻标题
    	private String content; // 新闻内容
    	private String date; // 新闻发布日期
    	private String url; //新闻地址
    	private Date nDate; // 新闻日期,Date类型
    
    	public News(int nId, String title, String content, String date, String url) {
    		this.nId = nId;
    		this.title = title;
    		this.content = content;
    		this.date = date;
    		this.url = url;
    	}
    
    	public News() {
    	}
    
    	public News(int nId, String title, String content, Date nDate, String url) {
    		this.nId = nId;
    		this.title = title;
    		this.content = content;
    		this.nDate = nDate;
    		this.url = url;
    	}
    
    	
    	
    	public String getUrl() {
    		return url;
    	}
    
    	public void setUrl(String url) {
    		this.url = url;
    	}
    
    	public Date getnDate() {
    		return nDate;
    	}
    
    	public void setnDate(Date nDate) {
    		this.nDate = nDate;
    	}
    
    	public int getnId() {
    		return nId;
    	}
    
    	public void setnId(int nId) {
    		this.nId = nId;
    	}
    
    	public String getTitle() {
    		return title;
    	}
    
    	public void setTitle(String title) {
    		this.title = title;
    	}
    
    	public String getContent() {
    		return content;
    	}
    
    	public void setContent(String content) {
    		this.content = content;
    	}
    
    	public String getDate() {
    		return date;
    	}
    
    	public void setDate(String date) {
    		this.date = date;
    	}
    
    }
    新建分页测试类NewTotal,主要用于Json分页显示,代码如下:
    import java.util.List;
    
    public class NewTotal {
    	private int total; //新闻数量
    	private List<News> rows; //新闻列表
    	
    	
    	public NewTotal() {
    	}
    	public NewTotal(int total, List<News> rows) {
    		this.total = total;
    		this.rows = rows;
    	}
    	public int getTotal() {
    		return total;
    	}
    	public void setTotal(int total) {
    		this.total = total;
    	}
    	public List<News> getRows() {
    		return rows;
    	}
    	public void setRows(List<News> rows) {
    		this.rows = rows;
    	}
    	
    	
    }


    步骤二:添加测试用Action和JSP界面

    新建JsonServlet,继承自HttpServlet,具体代码详解已经在代码中注释:

    import java.io.IOException;
    import java.io.PrintWriter;
    import java.util.ArrayList;
    import java.util.List;
    
    import javax.servlet.ServletException;
    import javax.servlet.http.HttpServlet;
    import javax.servlet.http.HttpServletRequest;
    import javax.servlet.http.HttpServletResponse;
    
    import com.google.gson.Gson;
    import com.test.model.NewTotal;
    import com.test.model.News;
    
    public class JsonServlet extends HttpServlet {
    
    	private static final long serialVersionUID = 1L;
    
    	@Override
    	protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
    		// 创建多个新闻类,模拟从数据库获取数据,可将此处改为用JDBC从数据库读取数据
    		News new1 = new News(110, "日本地震", "日本福田发生了7级地震", "2016-5-16 10:22:20",
    				"http://world.huanqiu.com/exclusive/2016-05/8974294.html");
    		News new2 = new News(111, "Apple库克第八次访华", "近日库克第八次访华,与滴滴高层会谈", "2016-5-16 10:22:20",
    				"http://mobile.163.com/16/0523/09/BNO7SG2B001168BQ.html");
    		News new3 = new News(113, "Google I/O大会开幕", "Google开发者大会即将举办,是否推出Android7.0?", "2016-5-16 10:22:20",
    				"http://www.ithome.com/html/android/227647.htm");
    		News new4 = new News(114, "格力营收下滑400亿", "格里营收下滑400亿,董明珠说我活得好的很", "2016-5-16 10:22:20",
    				"http://news.mydrivers.com/1/484/484072.htm");
    		News new5 = new News(115, "格力营收下滑400亿", "格里营收下滑400亿,董明珠说我活得好的很", "2016-5-16 10:22:20", "www.baidu.com");
    		News new6 = new News(116, "格力营收下滑400亿", "格里营收下滑400亿,董明珠说我活得好的很", "2016-5-16 10:22:20", "www.baidu.com");
    		News new7 = new News(117, "格力营收下滑400亿", "格里营收下滑400亿,董明珠说我活得好的很", "2016-5-16 10:22:20", "www.baidu.com");
    		News new8 = new News(118, "格力营收下滑400亿", "格里营收下滑400亿,董明珠说我活得好的很", "2016-5-16 10:22:20", "www.baidu.com");
    		News new9 = new News(119, "格力营收下滑400亿", "格里营收下滑400亿,董明珠说我活得好的很", "2016-5-16 10:22:20", "www.baidu.com");
    		News new10 = new News(120, "格力营收下滑400亿", "格里营收下滑400亿,董明珠说我活得好的很", "2016-5-16 10:22:20", "www.baidu.com");
    		News new11 = new News(121, "获取新数据!!!!!!", "格里营收下滑400亿,董明珠说我活得好的很", "2016-5-16 10:22:20", "www.baidu.com");
    		News new12 = new News(122, "获取新数据!!!!!!", "格里营收下滑400亿,董明珠说我活得好的很", "2016-5-16 10:22:20", "www.baidu.com");
    		News new13 = new News(123, "获取新数据!!!!!!", "格里营收下滑400亿,董明珠说我活得好的很", "2016-5-16 10:22:20", "www.baidu.com");
    		News new14 = new News(124, "获取新数据!!!!!!", "格里营收下滑400亿,董明珠说我活得好的很", "2016-5-16 10:22:20", "www.baidu.com");
    		News new15 = new News(125, "格力营收下滑400亿", "格里营收下滑400亿,董明珠说我活得好的很", "2016-5-16 10:22:20", "www.baidu.com");
    		News new16 = new News(126, "格力营收下滑400亿", "格里营收下滑400亿,董明珠说我活得好的很", "2016-5-16 10:22:20", "www.baidu.com");
    		News new17 = new News(127, "格力营收下滑400亿", "格里营收下滑400亿,董明珠说我活得好的很", "2016-5-16 10:22:20", "www.baidu.com");
    		News new18 = new News(128, "格力营收下滑400亿", "格里营收下滑400亿,董明珠说我活得好的很", "2016-5-16 10:22:20", "www.baidu.com");
    		News new19 = new News(129, "格力营收下滑400亿", "格里营收下滑400亿,董明珠说我活得好的很", "2016-5-16 10:22:20", "www.baidu.com");
    		News new20 = new News(130, "格力营收下滑400亿", "格里营收下滑400亿,董明珠说我活得好的很", "2016-5-16 10:22:20", "www.baidu.com");
    
    		String page = req.getParameter("page");
    		// 将数据添加到数组
    		List<News> newslist = new ArrayList<News>();
    		if (page == null || page.equals("0")) {
    			newslist.add(new1);
    			newslist.add(new2);
    			newslist.add(new3);
    			newslist.add(new4);
    			newslist.add(new5);
    			newslist.add(new6);
    			newslist.add(new7);
    			newslist.add(new8);
    			newslist.add(new9);
    			newslist.add(new10);
    		}
    		else {
    			newslist.add(new11);
    			newslist.add(new12);
    			newslist.add(new13);
    			newslist.add(new14);
    			newslist.add(new15);
    			newslist.add(new16);
    			newslist.add(new17);
    			newslist.add(new18);
    			newslist.add(new19);
    			newslist.add(new20);
    		}
    
    		// 将数据封装到新闻总计类
    		NewTotal nt = new NewTotal(newslist.size(), newslist);
    
    		// 调用GSON jar工具包封装好的toJson方法,可直接生成JSON字符串
    		Gson gson = new Gson();
    		String json = gson.toJson(nt);
    
    		// 输出到界面
    		System.out.println(json);
    		resp.setContentType("text/plain");
    		resp.setCharacterEncoding("gb2312");
    		PrintWriter out = new PrintWriter(resp.getOutputStream());
    		out.print(json);
    		out.flush();
    		// 更多Json转换使用请看JsonTest类
    	}
    
    	@Override
    	protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
    		this.doGet(req, resp);
    	}
    
    }

    修改项目index.jsp页面如下:

    <%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
    <%
    String path = request.getContextPath();
    String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
    %>
    
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
    <html>
      <head>
        <base href="<%=basePath%>">
        
        <title>Test Json</title>
        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8>
    	<meta http-equiv="pragma" content="no-cache">
    	<meta http-equiv="cache-control" content="no-cache">
    	<meta http-equiv="expires" content="0">    
    	<meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
    	<meta http-equiv="description" content="This is my page">
    	<!--
    	<link rel="stylesheet" type="text/css" href="styles.css">
    	-->
      </head>
      
      <body>
         <form action="getJson" method="get">
         	<input type="submit" value="点击获取新闻JSON数据"/>
         </form>
      </body>
    </html>

    在项目中配置web.xml,注册JsonServlet映射,配置如下:

    <?xml version="1.0" encoding="UTF-8"?>
    <web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd" id="WebApp_ID" version="3.0">
      <display-name>JsonTest</display-name>
      <welcome-file-list>
        <welcome-file>index.jsp</welcome-file>
      </welcome-file-list>
      
      <servlet>
          <servlet-name>JsonServlet</servlet-name>
          <servlet-class>com.test.json.JsonServlet</servlet-class>
      </servlet>
      <servlet-mapping>
          <servlet-name>JsonServlet</servlet-name>
          <url-pattern>/getJson</url-pattern>
      </servlet-mapping>
    </web-app>


    步骤三:添加项目到Tomcat容器,运行服务器

    运行服务器,在地址栏输入地址:http://localhost:8080/JsonTest/getJson?page=0,效果如图:


    其他关于JSON解析的也可以看我发布的源代码中的JsonTest类,获取源代码:JavaJson解析



    声明

    欢迎转载,但请保留文章原始出处
    作者:Jaiky_杰哥 
    出处:http://blog.csdn.net/jaikydota163/article/details/51458880

    展开全文
  • 利用json-server创建接口

    千次阅读 2017-06-14 22:22:05
    安装json-server npm install -g json-server jsoin-server基本用法json-server [options] <source>Options: --config, -c json-server配置文件,默认[json... --port, -p 配置接口,默认[3000] --host, -H 配置hos

    安装json-server

    npm install -g json-server

    jsoin-server基本用法

    json-server [options] <source>
    
    Options:
        --config, -c json-server配置文件,默认[json-server.json]
        --port, -p 配置接口,默认[3000]
        --host, -H 配置host,默认[0.0.0.0]
        --watch, -w 伪接口调用的文件
        --routes, -r 配置伪接口路由文件
        --help, -h
        --version, -v

    Example 简单例子

    创建一个db.json文件

    {
      "posts": [
        { "id": 1, "title": "json-server", "author": "typicode" }
      ],
      "comments": [
        { "id": 1, "body": "some comment", "postId": 1 }
      ],
      "profile": { "name": "typicode" }
    }

    启动json 服务

    json-server –watch db.json

    请求执行,默认为3000端口 http://localhost:3000/posts/1

    { "id": 1, "title": "json-server", "author": "typicode" }

    更多详情请访问json-server

    展开全文
  • jsonjson-c接口

    千次阅读 2016-06-22 13:05:31
    jsonjson-c、jsoncpp是3套不同的代码,其中的函数接口也大不一样,其中jsoncpp针对c++语言编写的。json-c比json要复杂一些,处理、容错能力稍强一些。json-c的api介绍:json_object.h文件常用的api/* 增加obj的...

    json、json-c、jsoncpp是3套不同的代码,其中的函数接口也大不一样,其中jsoncpp针对c++语言编写的。json-c比json要复杂一些,处理、容错能力稍强一些。

    json-c的api介绍:

    json_object.h文件常用的api

    /*
    增加obj的引用计数
    */
    struct json_object* json_object_get(struct json_object *obj);
    /*
    减少obj的引用计数,当引用计数为0时,释放obj实例所占用的内存
    */
    int json_object_put(struct json_object *obj);
    /*
    检查obj是否是给定的类型
    type是下列之一:
         json_type_null (i.e. obj == NULL),
         json_type_boolean,
         json_type_double,
         json_type_int,
         json_type_object,
         json_type_array,
         json_type_string,
    */
    int json_object_is_type(struct json_object *obj, enum json_type type);
    /*
    获取obj类型
    */
    enum json_type json_object_get_type(struct json_object *obj);
    /*
    将obj实例转化成一个json格式的字符串
    等同于json_object_to_json_string_ext(obj, JSON_C_TO_STRING_SPACED)
    返回一个json格式的字符串指针
    */
    const char* json_object_to_json_string(struct json_object *obj);
    /*
    将obj实例转化成一个json格式的字符串
    flags:
    JSON_C_TO_STRING_PLAIN
    JSON_C_TO_STRING_SPACED 
    JSON_C_TO_STRING_PRETTY 
    JSON_C_TO_STRING_NOZERO
    */
    const char* json_object_to_json_string_ext(struct json_object *obj, int flags);
    /*
    构建一个json对象
    */
    struct json_object* json_object_new_object(void);
    /*
    获取一个obj实例中项目的数量
    */
    int json_object_object_length(struct json_object* obj);
    /*
    向obj实例中增加一个键值对
    */
    void json_object_object_add(struct json_object* obj, const char *key,
                       struct json_object *val);
    /*
    该函数被弃用,请用 json_object_object_get_ex
    */
    struct json_object* json_object_object_get(struct json_object* obj,
                              const char *key)
    /*
    从obj实例中获取键key对应的json对象,并将找到的json对象指针存放到value中,
    该函数不会改变引用计数
    成功返回TRUE
    失败返回FALSE
    */
    json_bool json_object_object_get_ex(struct json_object* obj,
                              const char *key,
                              struct json_object **value);
    /*
    删除给定的json字段,实际上只是减少引用计数,当引用计数为0时才会真正删除(释放)该字段
    */
    void json_object_object_del(struct json_object* obj, const char *key);
    /*
    这是一个宏定义,遍历obj实例的所有键值对
    */
    json_object_object_foreach(obj,key,val)
    /*
    建立一个数组类型的json对象,返回json_type_array类型的对象
    */
    struct json_object* json_object_new_array(void)
    /*
    获取obj对象中的数组对象列表,obj必须是json_type_array类型
    */
    struct array_list* json_object_get_array(struct json_object *obj);
    /*
    获取obj对象的长度,obj必须是json_type_array类型
    */
    int json_object_array_length(struct json_object *obj);
    /*
    增加一个元素到obj的末尾,obj必须是json_type_array类型
    */
    int json_object_array_add(struct json_object *obj,
                     struct json_object *val);
    /*
    插入或替换数组obj中的对应索引下的值,obj必须是json_type_array类型
    */
    int json_object_array_put_idx(struct json_object *obj, int idx,
                         struct json_object *val);
    /*
    获取数组obj中的对应索引下的对象,obj必须是json_type_array类型
    */
    struct json_object* json_object_array_get_idx(struct json_object *obj,
                                 int idx);
    /*
    创建一个空的json_type_boolean类型的json对象
    */
    struct json_object* json_object_new_boolean(json_bool b);
    /*
    获取obj对象中的值,obj必须为json_type_boolean类型
    对于字符串非空或int,double非零的情况下都返回TRUE,否则返回FALSE
    */
    json_bool json_object_get_boolean(struct json_object *obj);
    struct json_object* json_object_new_int(int32_t i);
    struct json_object* json_object_new_int64(int64_t i);
    struct json_object* json_object_new_double(double d);
    struct json_object* json_object_new_double_s(double d, const char *ds);
    struct json_object* json_object_new_string(const char *s);
    struct json_object* json_object_new_string_len(const char *s, int len);
    int32_t json_object_get_int(struct json_object *obj);
    int64_t json_object_get_int64(struct json_object *obj);
    double json_object_get_double(struct json_object *obj);
    const char* json_object_get_string(struct json_object *obj);
    int json_object_get_string_len(struct json_object *obj);

    json_tokener.h文件
    主要实现了json文本解析器
    主要介绍下面几个函数

    /*
    将一个字符串解析成json对象并返回对象指针
    str:待解析的字符串
    tok:先前由json_tokener_new()创建的对象
    len:字符串str长度
    */
    
    struct json_object* json_tokener_parse(const char *str); //建议直接使用此函数,最后记得用json_object_put();释放内存
    struct json_object* json_tokener_parse_ex(struct json_tokener *tok,
                             const char *str, int len);
    /*
    调试用,打印错误信息
    */
    json_tokener_get_error(struct json_tokener *tok)
    /*
    构建和销毁json文本解析器
    */
    struct json_tokener* json_tokener_new(void);
    void json_tokener_free(struct json_tokener *tok);
    展开全文
  • api接口调用实例(response json_encode json)创建展视互动直播间,.pdf
  • php中json数据接口创建及调用

    千次阅读 2018-05-24 09:48:17
    JSON(JavaScriptObject Notation) 是一种轻量级的数据交换格式。它基于ECMAScript的一个子集。 JSON采用完全独立于语言的文本格式,但是也使用了类似于C语言家族的习惯(包括C、C++、C#、Java、JavaScript、Perl、...

    JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式。它基于ECMAScript的一个子集。 JSON采用完全独立于语言的文本格式,但是也使用了类似于C语言家族的习惯(包括C、C++、C#JavaJavaScriptPerlPython等)。这些特性使JSON成为理想的数据交换语言。 易于人阅读和编写,同时也易于机器解析和生成(一般用于提升网络传输速率)。

    json接口如何生成?或者是如何将普通数据转化为json数据?

    线上地址:https://my.weblf.cn/php0518/json_api/others/

    代码如下:

    <?php
    	header('content-type:application/json;charset=utf8');  
    	$arr=array(  
                array(  
                    "name"=>"0元大抽奖,快来体验吧", 
    				"price"=>666,
    				"pre_price"=>2888, 
    				"dazhe"=>"3折", 
    				"img"=>"img/img2.png",
    				"id"=>"1001", 
                    ),  
                array(  
                    "name"=>"玉洁洗发水", 
    				"price"=>57,
    				"pre_price"=>1267, 
    				"dazhe"=>"5折", 
    				"img"=>"img/img4.png",
    				"id"=>"1002",  
                    ),  
                array(  
                    "name"=>"超强微波炉", 
    				"price"=>399,
    				"pre_price"=>1767, 
    				"dazhe"=>"7折", 
    				"img"=>"img/im23.png",
    				"id"=>"1003",  
                    ),
                array(
                	"name"=>"柯南麻醉手表", 
    				"price"=>199,
    				"pre_price"=>267, 
    				"dazhe"=>"6折", 
    				"img"=>"img/im24.png",
    				"id"=>"1004",
    			),
    			array(
                	"name"=>"柯达照相机", 
    				"price"=>3000,
    				"pre_price"=>5474, 
    				"dazhe"=>"5折", 
    				"img"=>"img/im25.png",
    				"id"=>"1005",
    			) 
            );  
      	$result=array("status"=> 1,"data"=>$arr,"msg"=>"获取商品信息成功");
        $json=json_encode($result);
    	echo $json;
    	

    如果直接打开此文件,可以看到浏览器显示

    对其进行json解析,可以看到是个完整的json格式数据

    在前端用ajax请求一下:

    $(function(){
    			$.ajax({
    				type:"get",
    				url:'json.php',
    				dataType:'json',
    				async:true,
    				success:function(res){
    					//var res=JSON.parse(res);
    					console.log(res);
    				}
    			});
    		})

    结果:

    请求成功。

    原文地址:https://my.weblf.cn/website/seop/news_detail?id=6

    展开全文
  • 在tomcat服务器上创建数据的api接口json格式) 简介: 即把数据传到服务器,以后需要使用数据,就直接用HttpURLConnection的相关类进行调用就了。 效果图: 输入url地址,得到相关数据 api接口创建的步骤 1....
  • Runtime文件夹:是缓存文件夹,我们需要清理缓存时就把它删了即可. 我们这里主要用到的是Home文件夹.二.连接数据库(Conf文件夹里主要是负责连接数据库)前往—电脑—APPLE—资源库—WebServer—Document
  • php json格式简单封装接口方法并调用

    千次阅读 2017-01-18 15:47:25
    php json格式简单封装接口方法并调用
  • 首先下载安装geth,下载地址如下: ... 安装后会在安装目录生成一个geth.exe,需要使用命令行工具来运行它。... init piccgenesis.json piccgenesis.json文件: { &quot;config&quot;: { &quot;c...
  • YII2 resfull接口创建 返回JSON 数据类型 创建控制器 继承 ActiveController; use yii\rest\ActiveController; <?php namespace api\controllers; use Yii; use yii\web\Controller; use yii\rest\Active...
  • data.json文件内容 { &amp;amp;quot;code&amp;amp;quot;: 0, &amp;amp;quot;msg&amp;amp;quot;: &amp;amp;quot;请求成功&amp;amp;quot;, &amp;amp;quot;data&amp;amp;quot;: [ ...
  • 转载请注明出处:http://blog.csdn.NET/wondgirl内容概要: 我是一名iOS开发的程序员,我发现很我像我一样做APP的程序员都想学会自己写接口,所以写了这篇博文,即使你是零基础,也可以学会如何用ThinkPHP写json数据接口....
  • 创造json数据来进行接口测试

    千次阅读 2018-12-04 14:07:18
    if (reader.parse(str, root)) // reader将Json字符串解析到root,root将包含Json里所有子元素 { std::string upload_id = root["uploadid"].asString(); // 访问节点,upload_id = "UP000000" int code = ...
  • java json接口加密解密

    千次阅读 2019-09-23 12:24:06
    java json接口加密解密 对json接口进行加密解密, 这里实现的方式是 解密使用自定义过滤器 1、启动类加注解@ServletComponentScan @SpringBootApplication @ServletComponentScan public class TestWebApplication {...
  • //这个是创建JSON的关键函数 ?> 实现结果 {"id":1,"name":"david"} 注意: json_encode($value);这个函数只能接收utf-8编码的数据。其他格式数据传给该函数返回null; 封装通信接口的数据方法  1.通信数据...
  • 前言 本文使用 php 来做一个简单的接口,客户端传入数据,该接口返回 JSON 格式数据。 ... $code, message => $message, data => $data ]; # 转换为json并打印测试 ...# 调用json接口(假设状态码200代表成功) R
  • 摆脱官方Demo,写出个性的APIJSON 嗯!这十几天公司很忙,下来决心搞一搞开源的自动化框架,眼花缭乱的作品一眼就认定了它——APIJSON,是它的灵活吸引了我。网上APIJSON资源并不多,这一期我带大家以我的思路学习...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 251,108
精华内容 100,443
关键字:

json创建好了如何当接口