首先认识一下JSON

JSON官网:http://www.json.org/json-zh.html

JSON是一种数据格式,是一种在互联网传输中运用最多的数据交换语言,由于它轻便、灵巧,且能从各种语言中完全独立出来,所以成为目前最理想的数据交换语言。

例如我们完成了一个项目,该项目部署在web端和Android端,由于我们要使两者数据互通,这时我们就可以采用json传输数据,例如我们在Android端添加数据,同时我们想使web同步,利用JSON可以直接将数据提交给web,然后使用后端语言进行处理即可。

JSON语言采用key/value型数据格式

key:value相信大家都不陌生,JSON亦是如此。JSON所有的内容都由key/value实现

key是一个字符串关键字,用来唯一标识一个属性,例如"name","address","time"等等。

value是关键字的值,它可以由以下几种数据构成

  1. String:字符串
  2. number:数字
  3. object:对象(key:value)
  4. array:数组
  5. true:√
  6. false:×
  7. null:空

结构之间可以相互嵌套,比如:

{
    "data": [{
            "name": "qs395517243"
        },
        {
            "age": 20
        },
        {
            "hobby": [{
                "first": "study"
            }, {
                "second": "play"
            }, {
                "third": "sport"
            }]
        },
        {
            "language": ["C", "java", "Python"]
        },
        "just a test"
    ]
}

整体是一个object——key为"data",value为数组array(length==5)

  • 最外层数组的第1块内容为object,key为"name",value为字符串String:"qs395517243"
  • 最外层数组的第2块内容为object,key为"age",value为数值number:20
  • 最外层数组的第3块内容为object,key为"hobby",value为数组array(length==3)
    • hobby层数组的第1块内容为object,key为"first",值为字符串String:"study"
    • hobby层数组的第2块内容为object,key为"second",值为字符串String:"play"
    • hobby层数组的第3块内容为object,key为"third",值为字符串String:"sport"
  • 最外层数组的第4块内容为object,key为"language",value为数组array(length==3)
    • language层数组的第1块内容为字符串String:"C"
    • language层数组的第2块内容为字符串String:"java"
    • language层数组的第3块内容为字符串String:"Python"
  • 最外层数组的第5块内容为字符串String:"just a test"

可以看到嵌套的效果

什么是API

API(Application Programming Interface,应用程序编程接口)是一些预先定义的函数,目的是提供应用开发与开发人员基于某软件或硬件得以访问一组例程的能力,而又无需访问源码,或理解内部工作机制的细节。

————来自百度百科

简而言之,就是各大厂商或个人将其封装好的函数/功能的接口提供给我们,我们通过直接调用其接口就可以完成相应的功能,而不用了解其中的内部逻辑。那么API接口和JSON又有什么关系呢。我们举个栗子:

这是某一个API获取到的JSON数据,也就是说,我们通过API获取到的仅仅是一个JSON数据对象,我们需要进行解析才可以拿出我们需要的信息,比如上面这张图片,我们模拟输入的数据是"nba"(rw=nba)得到了上面的JSON数据,其中的内容我们可以根据英文明白相应的内容,而我们抓取其中的信息之后,通过后端处理和前端展示,得到了下面这样一个大致效果:

左边是imageUrls中的(第一张)图片,右边从上到下从左到右分别是title,posterScreenName,publishDateStr,我们通过相关方法获取到JSON中的相关数据并且把它们展示出来。

至于相关的实现代码和抓取JSON的代码,我们下次再详细剖析。

API大全:

分享:百度分享、JiaThis

评论:畅言、友言

支付:JiaSale、蚂蚁金服、微信支付、银联、第四方支付

地图:高德开发平台、百度地图开发平台

第三方登录:QQ登陆、微信登陆、微博登陆、淘宝

识别技术:百度AI、科大讯飞

娱乐:网易云音乐api

快递:快递100

短信:阿里大鱼

天气:2345天气预报、聚合数据

新闻:聚合数据

短视频:七牛云

翻译:有道智云

广告:阿里妈妈、百度网盟、京东联盟、广告联盟

统计:百度统计、CNZZ(友盟)、51啦

在线客服:53kf、51客服、百度商桥

综合API平台:聚合数据、APIStore、iDataAPI

数据采集:火车头采集器

快速开发APP:应用公园、叮当APP、APICloud、起步软件

社交平台搭建:轻媒

JSON和API接口初识相关推荐

  1. php api json,PHP API接口必备之输出json格式数据实例详解

    这篇文章主要给大家介绍了关于PHP API接口必备之输出json格式数据的相关资料文中通过示例代码介绍的非常详细,对大家具有一定的参考学习价值,需要的朋友们下面来一起看看吧. 前言 我们在日常的开发工 ...

  2. 跨域支持与返回json数据--mvc访问api接口

    api的设置 1.设置api接口返回json数据 App_Start-->WebApiConfig-->添加  config.Formatters.Clear();config.Forma ...

  3. 基于“新浪乐库”的音乐搜索API接口,返回JSON数据

    新浪开发平台提供的API接口非常丰富,可没有音乐搜索的接口,对于我们这些搞基于微博应用的孩子还是比较悲剧的. 于是我可爱的好基友@ACMer_耕畅写了一段代码,把"新浪乐库"返回的 ...

  4. php中使用json做api,JSONAPI在PHP中的应用

    现在服务端程序员的主要工作已经不再是套模版,而是编写基于 JSON 的 API 接口.可惜大家编写接口的风格往往迥异,这就给系统集成带来了很多不必要的沟通成本,如果你有类似的困扰,那么不妨关注一下 J ...

  5. 初识Django —Python API接口编程入门

    初识Django -Python API接口编程入门 一.WEB架构的简单介绍 Django是什么? Django是一个开放源代码的Web应用框架,由Python写成.我们的目标是用Python语言, ...

  6. matlab api接口调用json格式

    matlab 的api接口调用有2个函数,一个是webwrite,一个是webread,webwrite类似post,将数据写入 RESTful Web 服务:webread类似get,从 RESTf ...

  7. php json与接口的使用,api接口与json

    摘要: api接口是一种无需访问源码,能方便链接多个网页应用的通道,json数据是API接口使用的编码语言,能通过本地或在线工具解析远程过程调用(RPC):通过作用在共享数据缓存器上的过程(或任务)实 ...

  8. api接口返回动态的json格式?我太难了,尝试一下 linq to json

    一:背景 1. 讲故事 前段时间和一家公司联调api接口的时候,发现一个奇葩的问题,它的api返回的json会动态改变,简化如下: {"Code":101,"Items& ...

  9. java jsoup解析开彩网api接口json数据实例

    https://www.cnblogs.com/zdz8207/p/7288830.html 开彩网apiJava技术学习 https://www.itkc8.com json-lib-2.4-jdk ...

  10. 沪深A股指数历史分时交易数据API接口(JSON标准格式,Get请求方式)

    沪深A股指数历史分时交易数据API接口(JSON标准格式,Get请求方式) 数据来源:沪深A股股票数据API接口 麦蕊智数(www.mairui.club) 历史分时交易 ·  API接口:http: ...

最新文章

  1. 今天起,在广东可以用百度App一键报警!
  2. JavaScript碎片
  3. cpu性能排名学习笔记
  4. Java中集合中根据对象的某个属性去重
  5. 郁闷,两个伤脑筋的power script 问题
  6. php10天速成培训,十天学会php之第十天
  7. Java验证码生成工具类(简洁高效)
  8. 股指期货基差和升贴水介绍
  9. 三阶魔方层先法自动复原_Python
  10. 蓝牙钥匙解决方案 BLE RSSI 测距
  11. 网络统考计算机应用基础ppt视频,计算机应用基础课程网络统考辅导.ppt
  12. 我的通宵史-网上斗地主谋生
  13. java 百亿计算器_java面试题--实现一个百亿的计算器
  14. React全家桶之WEB基础应用-姜威-专题视频课程
  15. python打开一个不存在的文件报错,python中的文件操作(一)
  16. 论文悦读(1)——NVM文件系统之NOVA文件系统
  17. (翻译)禀赋效应(Endowment Effect)
  18. Linux 中三种引号(单引号、双引号、反引号)的区别
  19. 【SLAM】——what(): Pangolin X11: Failed to open X display
  20. 第12章:react-redux

热门文章

  1. 应用ruby打造个性化的有道单词本 (二)
  2. Java-面向对象编程-三大特性之多态
  3. yalmip使用指南
  4. CH340以及CH系列USB转串口驱动下载
  5. 地址转换函数(点分十进制与网络字节序的二进制)
  6. 23种设计模式设计原则
  7. 原生AJAX GET请求
  8. Windows端口扫描关闭工具
  9. WEB数据库管理平台kb-dms:功能简介【一】
  10. 华为hcna认证用处大吗?