一文彻底搞懂JSON数据

这篇具有很好参考价值的文章主要介绍了一文彻底搞懂JSON数据。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

什么是JSON,为什么需要JSON,JSON的3种形式,JSON常用的方法等

1、JSON是什么?

TIP
JSON指的是全称是:javascript对象表示法

  • JSON是Ajax发送和接收数据的一种格式
  • JSON是一种轻量级的数据交互格式,其为字符串类型(面试题会考到)
  • JSON是一种语法,用来序列化对象、数组、数值、字符串、布尔值和null,但不能是undefined

2、序列化和反序列化

为什么要序列化?

  • 目的是为了对象可以跨平台存储和网络传输,而网络传输的方式就是IO,而IO支持的数据格式就是字节数组
  • 单方面将对象转成字节数组还不够,传输过去后还要约定一种规则将字节数组转化为对象

通俗讲就像将一栋房子从一个地方运到另一个地方,序列化就是将房子拆成一块块放到车上,再另一个地方根据图纸拼装起来就是返序列化

3、为什么需要JSON

TIP
前后端通信的过程种需要交换数据,如果将前端JS的数据(比数组和对象等)直接传给后端,后端是无法解析的

  • 因为后端语言比如java、php、node.js、python等都有各自的语法
  • 前端是JS语法
  • 因此对于前后端而言,对于数据的写法各自是不同的,因此互不相认
  • 这时候就需要一种双方都认识的数据格式进行中转,而JSON这种数据格式因表现优秀,目前90%以上都用JSON进行中转
  • js(前端)--------> JSON--------->java/python等

4、JSON的3种形式

简单值形式、对象形式、数组形式
JSON数据文件的后缀名是:.json
JSON文件中不能写任何注释

4.1、JSON简单值写法

JSON的简单值形式对应着JS中的基础数据类型:数字、字符串、布尔值、null

  • 特别注意:不能是undefined类型,不然会报错
  • JSON中的字符串必须要用双引号,单引号也会报错

以下每条代码演示都是一个单独JSON文件,以便演示文件里面能写的数据类型

123
"我是字符串"
true
null

json数据,web前端-网络请求,json,javascript,前端

4.2 、JSON对象形式

JSON的对象对应的是JS中的对象,主要区别如下

  • JSON中对象的属性名必须用双引号,属性值如果是字符串也必须要用双引号
  • JSON对象的属性值并不能是undefined

以下是text.json文件

{
    "username":"柳学生",
    "password":123456,
    "sex":"male",
    "bobby":["轮滑","羽毛球"],
    "family":{
        "father":"Liu",
        "monder":"美女"
    }
}

json数据,web前端-网络请求,json,javascript,前端
以下JS变量中保存的是字符串符合JSON格式的有

  • 特别注意:json本身就是一个字符串,有一定格式要求的字符串
let strJson1 = '{"name":1,"age":32}'; // 正确的JSON字符串
let strJson2 = `{"name":1,"age":32}`; // 正确的JSON字符串
let strJson3 = "{'name':1,'age':32}"; // 错误的JSON字符串
let strJson4 = `{'name':1,'age':32}`; // 错误的JSON字符串

4.3、JSON数组形式

JSON的数组形式对应着js中的数组,但也有以下区别

  • 数组中字符串必须用双引号
  • 数组中成员有对象类型,则需要满足JSON对象格式要求
  • 不支持undefined类型
[
  {
    id: 1,
    username: "学生1",
    phone: "123456",
    email: "123@163.com",
  },
  {
    id: 2,
    username: "学生2",
    phone: "156984",
    email: "666@163.com",
  },
  {
    id: 3,
    username: "星辰大海",
    phone: "18966",
    email: "888@163.com",
  },
]

5、JSON的常用方法

方法 说明
JSON.stringify() 可以将js基本数据类型、对象或者数组转化为JSON格式的字符串
JSON.parse() 可以将JSON格式的字符串转化为js对应的数据类型

注:通常用来转化对象和数组

JSON.parse()方法将JSON数据格式转化为对应的数据类型

<script>
        let num = JSON.parse('1');
        console.log(num,typeof num);

        let boo = JSON.parse('true');
        console.log(boo,typeof boo);

        let n = JSON.parse('null');
        console.log(n,typeof n);

        let arr = JSON.parse('[null,123,"我是json",{"username":"张三"}]');
        console.log(arr,typeof arr);

        let obj = JSON.parse('{"username":"李四","password":"123456@163.com"}');
        console.log(obj,typeof obj);

    </script>

json数据,web前端-网络请求,json,javascript,前端

JSON.stringify()方法将其它数据类型转化为JSON数据格式

        let number = JSON.stringify(123);
        console.log(number,typeof number);

        let n2 = JSON.stringify(null);
        console.log(n2,typeof n2);

        let boolear = JSON.stringify(true);
        console.log(boolear,typeof boolear);

        let arr2 = JSON.stringify(["好玩","好看",123]);
        console.log(arr2,typeof arr2);

        let obj2 = JSON.stringify({hobby:'轮滑'});
        console.log(obj2,typeof obj2);

json数据,web前端-网络请求,json,javascript,前端文章来源地址https://www.toymoban.com/news/detail-740463.html

到了这里,关于一文彻底搞懂JSON数据的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【iOS】json数据解析以及简单的网络数据请求

    近期写完了暑假最后一个任务——天气预报,在里面用到了简单的网络数据请求以及json数据的解析,特此记录博客总结 JSON是一种轻量级的数据格式,一般用于数据交互。目前JSON的使用非常广泛,绝大多数网络请求都采用了JSON格式。 举个例子: 这就是我们利用API请求到的

    2024年02月14日
    浏览(28)
  • 前端异步请求并解决跨域问题(Ajax+axios框架)、后端响应多个数据(JSON)

    目录 一、前后端同步异步请求 1.同步请求: 2.异步请求: 3.跨域问题(前端问题) 4.axios框架(封装后) 二、后端向前端响应多个数据-JSON 1.同步请求:         发送一个请求,回应请求,回应的内容会覆盖浏览器中的内容,这样会 打断 前端其他的正常操作。 2.异步请求:

    2024年02月07日
    浏览(53)
  • 微信小程序之WXSS模板样式、页面配置(.json)和网络数据请求

    学习的最大理由是想摆脱平庸,早一天就多一份人生的精彩;迟一天就多一天平庸的困扰。各位小伙伴,如果您: 想系统/深入学习某技术知识点… 一个人摸索学习很难坚持,想组团高效学习… 想写博客但无从下手,急需写作干货注入能量… 热爱写作,愿意让自己成为更好

    2024年01月24日
    浏览(47)
  • Qt 使用HTTP请求网络API并接收返回的JSON格式的数据

    引入网络模块: mainwindow.h: mainwindow.cpp:

    2024年02月13日
    浏览(34)
  • Qt网络编程post请求,数据格式为json或x-www-form-urlencoded

    目录 Qt网络编程post请求,数据格式为json或x-www-form-urlencoded 一、.H文件 1、.h头文件 2、.h主代码 二、.CPP文件 1、主代码  三、响应信息 返回结果(Josn数据格式输出) 四、Post数据格式参数及数据类型定义 1、Post:application/x-www-form-urlencoded数据类型格式 2、Post:application/json数据

    2024年02月07日
    浏览(32)
  • 新增:前端提示“请求JSON参数格式不正确,请检查参数格式

    解决方法: 1.检查后端控制台报错: 参数格式传递异常,请求号为:3b44424d-73bd-4db7-970b-38638451c439,具体信息为:JSON parse error: Cannot deserialize value of type ` java.lang.Long` from String \\\" 新增的字段 \\\": not a valid Long value; nested exception is com.fasterxml.jackson.databind.exc.InvalidFormatException: Cannot

    2024年02月17日
    浏览(25)
  • 抓取网络请求Network中的响应JSON数据,不用JS逆向和RPC,python selenium+browser-proxy

    显然上面的红框是加密数据。   下面正式开始 首先要检查电脑是否安装了JDK8,高版本的好像不行,如果没有安装,则需要进行安装。这里不介绍了。下面下载两个东西: (1)python包的安装:pip3 install browsermob-proxy (2)组件下载地址:https://github.com/lightbody/browsermob-proxy/r

    2024年02月15日
    浏览(33)
  • 前端发送请求之参数处理---【text/plain】与【application/json】

    Content-Type就是指 HTTP 发送信息至服务器时的内容编码类型,服务器根据编码类型使用特定的解析方式,获取数据流中的数据。 其实前后端发送请求的方式有 text/plain、application/json、application/x-www-form-urlencoded、 multipart/form-data等,这版接上一篇,继续介绍【text/plain】与【appli

    2024年01月18日
    浏览(69)
  • PostgreSQL 中的 JSON:彻底改变数据库中的数据灵活性

    在这篇文章中,我们将介绍 PostgreSQL 对 JSON 对象的实现和处理方法。拥有一些 Linux、Postgres 和 JSON 方面的经验是必要的,因为我们不仅要介绍这些新功能,还要介绍如何实现它们。 本文使用在 Ubuntu 23.04 上运行的 PostgreSQL 16(开发版)编写 。首先,我将简要回顾一下 JSON 的背

    2024年01月19日
    浏览(26)
  • 【算法】一文彻底搞懂ZAB算法

    最近需要设计一个分布式系统,需要一个中间件来存储共享的信息,来保证多个系统之间的数据一致性,调研了两个主流框架Zookeeper和ETCD,发现都能满足我们的系统需求。 其中ETCD是K8s中采用的分布式存储,而其底层采用了RAFT算法来保证一致性,之前已经详细分析了Raft算法

    2024年02月02日
    浏览(45)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包