关于JSON与JSONP简单总结

关于JSON与JSONP简单总结

什么是JSON?

JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,易于人阅读和编写,同时也易于机器解析和生成。

JSON格式如下:

{
  "name": "John",
  "age": 30,
  "country": "USA",
  "hobbies": ["reading", "traveling"]
}

其中,每个键值对用冒号分隔,每个键值对之间用逗号分隔,整个结构用大括号括起来。

什么是JSONP?

JSONP(JSON with Padding)是一种跨域数据交互方式。由于浏览器的同源策略,JavaScript只能访问与本网页同源的资源,而JSONP通过动态创建DOM节点的方式引入一个外部脚本,再将JSON数据作为该脚本的参数传递过来,从而实现跨域数据交互。JSONP请求的响应数据需要是一段可执行的JavaScript代码,由于可以在前端执行,所以JSONP常用于跨域调用API。

JSONP的格式如下:

callback({
  "name": "John",
  "age": 30,
  "country": "USA",
  "hobbies": ["reading", "traveling"]
})

其中callback是前端定义的一个回调函数,服务端通过将JSON数据作为参数传递到callback函数中来构造响应。

JSON与JSONP示例

JSON示例

以下示例演示如何使用JavaScript解析JSON数据:

<!DOCTYPE html>
<html>
  <body>
    <p id="demo"></p>
    <script>
      var jsonText = '{ "name": "John", "age": 30, "country": "USA", "hobbies": ["reading", "traveling"] }';
      var obj = JSON.parse(jsonText);
      document.getElementById("demo").innerHTML = "Name: " + obj.name + ", Age: " + obj.age;
    </script>
  </body>
</html>

解析后输出结果为:Name: John, Age: 30。

JSONP示例

以下示例演示如何使用jQuery跨域调用API:

<!DOCTYPE html>
<html>
  <head>
    <script src="https://code.jquery.com/jquery-3.5.1.min.js"></script>
  </head>
  <body>
    <p id="demo"></p>
    <script>
      function getData(data) {
        var name = data.name;
        var age = data.age;
        document.getElementById("demo").innerHTML = "Name: " + name + ", Age: " + age;
      }
      $.ajax({
        url: "http://example.com/api?callback=getData",
        dataType: "jsonp",
      });
    </script>
  </body>
</html>

将getData函数作为callback参数传递给API,JSONP响应的数据将作为getData函数的参数,解析后输出结果同上。

总结

JSON是一种常用的数据交换格式,易于读写,常用于前后端数据交互。JSONP则是一种跨域数据交互方式,常用于跨域调用API。了解JSON与JSONP的格式以及相关应用场景,有助于提高前端开发的技术水平。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:关于JSON与JSONP简单总结 - Python技术站

(0)
上一篇 2023年5月23日
下一篇 2023年5月23日

相关文章

  • win10玩epic正当防卫4提示错误0xc000007b的解决方法

    下面我将为你详细讲解“win10玩epic正当防卫4提示错误0xc000007b的解决方法”的完整攻略。 1. 问题描述 在玩正当防卫4时,有些玩家会遇到一个错误提示,即“0xc000007b”。这个错误提示会导致游戏无法正常启动,影响游戏体验。 2. 解决方法 方法一:更新系统补丁 首先,这个问题很可能是由于系统缺少某些补丁导致的。你可以按照以下步骤来更新…

    C 2023年5月23日
    00
  • C++中实现fibonacci数列的几种方法

    C++中实现Fibonacci数列的几种方法 1. 递归方法 递归是一个很自然的实现Fibonacci数列的方法。代码如下: int fibonacci(int n) { if(n <= 1) return n; return fibonacci(n-1) + fibonacci(n-2); } 这个方法的时间复杂度是O(2^n)。当n变得很大时,递归…

    C 2023年5月22日
    00
  • 一文详解QDialog中exec与open的区别

    一文详解QDialog中exec与open的区别 概述 在 PyQt 中,QDialog 是一种常用的对话框控件,也是 PyQt 程序中用户交互的重要组成部分。在使用 QDialog 创建对话框时,我们通常需要选择其中的两个方法:exec 和 open,这两个方法的用法和效果有一些不同。下面就让我们一起来详细讲解它们的区别。 exec exec 是 QDia…

    C 2023年5月22日
    00
  • Win7系统应用程序正常初始化失败提示0xc0000135解决方法

    Win7系统应用程序正常初始化失败提示0xc0000135解决方法 问题描述 在Win7系统中,当你尝试打开某些应用程序时,有可能会出现应用程序正常初始化失败提示0xc0000135的错误信息。这个问题可能会影响到你的工作或者娱乐,因此我们需要找到解决方法。 原因分析 这个问题通常是由于系统缺少某些依赖库或者依赖库损坏造成的,使得应用程序无法正常初始化。这个…

    C 2023年5月24日
    00
  • LUNC币怎么购买交易?LUNC币买卖交易操作教程

    LUNC币是一种基于以太坊的ERC-20代币,主要用于中立联盟链平台上的交易和支付,下面是一份 LUNC币购买交易的操作教程。 步骤一:创建数字钱包 在进行LUNC币的购买交易前,您需要先创建一份数字钱包并备份好钱包的助记词。目前流行的数字钱包有MetaMask、MyEtherWallet和imToken等。一般来说,数字钱包会生成一个地址,然后你需要将以太…

    C 2023年5月23日
    00
  • C语言实现扫雷小项目

    C语言实现扫雷小项目攻略 1. 确定游戏功能和数据结构 在开始编码前,首先需要确定扫雷游戏的基本功能和数据结构: 游戏功能:实现扫雷游戏的核心功能,包括地雷的生成、数字的计算、点击和标记等操作。 数据结构:定义并实现游戏所需的数据结构,如二维数组等。 2. 创建扫雷项目文件 创建一个新的C语言项目文件夹并进入该文件夹,输入以下命令: mkdir minesw…

    C 2023年5月23日
    00
  • 详解如何使用VSCode和CMake构建跨平台的C/C++开发环境

    详解如何使用VSCode和CMake构建跨平台的C/C++开发环境 在本文中,我们将介绍如何使用VSCode和CMake构建跨平台的C/C++开发环境。CMake是一个跨平台的构建系统,可以在不同的操作系统和编译器下生成不同的构建配置,使得开发者可以方便地将代码移植到不同的平台上。而VSCode则是一个轻量级但功能强大的文本编辑器,集成了多种插件和功能,支持…

    C 2023年5月23日
    00
  • C++命令行解析包gflags的使用教程

    C++命令行解析包gflags的使用教程 什么是gflags? gflags是Google开源的C++命令行解析包,可以方便的对C++程序进行命令行参数的解析,自动生成帮助信息等操作。使用gflags需要引入头文件。 gflags的基本用法 在C++程序中使用gflags的过程中,主要可以通过两个宏定义来添加命令行参数: DEFINE_xx: 定义一个命令行…

    C 2023年5月23日
    00
合作推广
合作推广
分享本页
返回顶部