爬虫学习6

JSON(JavaScript Object Notation)和JSONP(JSON with Padding)是两个不同的概念,它们的主要区别在于用途和实现方式:

JSON(JavaScript Object Notation)

  1. **定义:** JSON是一种轻量级的数据交换格式,易于人阅读和编写,同时也易于机器解析和生成。它基于JavaScript的一个子集,但是独立于语言,可以被多种编程语言解析。

  2. **用途:** JSON用于在网络中传输数据,特别是在Web开发中,用于客户端和服务器之间的数据交换。

  3. **格式:** JSON数据格式类似于JavaScript对象字面量,但是更加严格,例如属性名必须用双引号括起来。

  4. **示例:**

javascript 复制代码
   {
       "name": "John",
       "age": 30,
       "city": "New York"
   }
  1. **解析:** 可以在多种编程语言中解析JSON,通常有专门的库或内置函数来处理JSON数据。

JSONP(JSON with Padding)

  1. **定义:** JSONP是一种跨域数据请求的解决方案,它通过动态创建`<script>`标签来绕过浏览器的同源策略限制。

  2. **用途:** JSONP主要用于在不支持CORS(跨源资源共享)的旧版浏览器中,从不同源的服务器获取数据。

  3. **格式:** JSONP数据格式在JSON的基础上,通过一个回调函数名进行"填充",使其成为一段可执行的JavaScript代码。

  4. **示例:**

javascript 复制代码
   myCallbackFunction({
       "name": "John",
       "age": 30,
       "city": "New York"
   });

在这个例子中,`myCallbackFunction`是客户端定义的回调函数,服务器响应时会将JSON数据包装在这个函数调用中。

  1. **解析:** JSONP不需要解析,因为它通过JavaScript执行回调函数来传递数据,而JSON需要在客户端使用JSON解析函数(如`JSON.parse()`)来解析成对象。

主要区别

  • **安全性:** JSONP存在安全风险,因为它允许执行来自远程服务器的任意JavaScript代码,而JSON通常被认为是安全的。

  • **跨域能力:** JSONP允许跨域请求,而标准的JSON请求(如通过AJAX)受到同源策略的限制。

  • **HTTP方法:** JSONP通常只支持GET请求,而JSON可以通过AJAX、Fetch API等支持多种HTTP方法(GET、POST、PUT等)。

  • **现代替代:** 随着CORS和WebSockets等技术的发展,JSONP的使用越来越少,因为它存在安全问题和功能限制。

总的来说,JSON是一种数据格式,而JSONP是一种利用JSON实现跨域请求的技术。随着现代Web技术的发展,JSONP逐渐被更安全、更灵活的技术所取代。

相关推荐
深蓝电商API7 分钟前
爬虫请求频率控制与模拟人类行为
爬虫
喵手23 分钟前
Python爬虫实战:知识挖掘机 - 知乎问答与专栏文章的深度分页采集系统(附CSV导出 + SQLite持久化存储)!
爬虫·python·爬虫实战·零基础python爬虫教学·采集知乎问答与专栏文章·采集知乎数据·采集知乎数据存储sqlite
禹凕1 小时前
Python编程——进阶知识(多线程)
开发语言·爬虫·python
程序媛徐师姐1 小时前
Python基于爬虫的网络小说数据分析系统【附源码、文档说明】
爬虫·python·python爬虫·网络小说数据分析系统·pytho网络小说数据分析系统·python爬虫网络小说·python爬虫的网络小说数据
jianghua0012 小时前
Python中的简单爬虫
爬虫·python·信息可视化
喵手3 小时前
Python爬虫实战:针对Python官网,精准提取出每一个历史版本的版本号、发布日期以及对应的文档/详情页链接等信息,并最终清洗为标准化的CSV文件!
爬虫·python·爬虫实战·零基础python爬虫教学·python官方数据采集·采集历史版本版本号等信息·导出csv文件
其美杰布-富贵-李3 小时前
爬虫中 XPath 使用完全指南
爬虫·xpath
喵手3 小时前
Python爬虫实战:城市停车收费标准自动化采集系统 - 让停车费透明化的技术实践(附CSV导出 + SQLite持久化存储)!
爬虫·python·爬虫实战·零基础python爬虫教学·城市停车收费标准·采集城市停车收费数据·采集停车数据csv文件导出
喵手5 小时前
Python爬虫实战:采集菜谱网站的“分类/列表页”(例如“家常菜”或“烘焙”频道)数据,构建高可用的美食菜谱数据采集流水线(附CSV导出)!
爬虫·python·爬虫实战·零基础python爬虫教学·采集菜谱网站数据·家常菜或烘焙频道·构建高可用食谱数据采集系统
喵手5 小时前
Python爬虫实战:硬核解析 Google Chrome 官方更新日志(正则+文本清洗篇)(附 CSV 导出)!
爬虫·python·爬虫实战·零基础python爬虫教学·csv导出·监控谷歌版本发布历史·获取稳定版更新日志