JSON是什么

发布时间:2025-08-09

在现代化 Web 应用开发中,广泛使用一种名为 JSON 的数据交换格式。JSON 是一种轻量级数据交换格式,在不同系统之间提供标准且高效的数据交换。

JSON 是什么

JSON的全称为 JavaScript Object Notation,意为 JavaScript 对象表示法。本质是一种文本格式,用于存储和交互数据,JSON 有着较好的阅读性,更易于学习和问题排查。现阶段 JSON 已经是大部分系统交互的首选格式。

为什么使用 JSON

JSON 是基于文本轻量级数据交换格式,使用上较为灵活,易于程序解析,便于人类理解。同时,JSON 的语言独立性使得其不受编程语言和系统平台的限制,例如使用 Java 开发的应用可以将 JSON 数据发送到 C# 开发的应用中进行解析。

JSON 广泛应用于当今的前后端分离开发模式中,前端和后端通过 JSON 格式定下通信协议,前端接收用户的输入整理为 JSON 格式发送给后端,后端解析并处理数据后将结果也通过 JSON 格式发送回前端,实现更好的 Web 交互体验。

JSON 还广泛被用于数据存储,各大应用将系统配置,用户偏好等通过 JSON 格式存储到文件中,方便后续直接读取使用。还有基于 JSON 格式开发的各大非关系型数据库数据库(nosql),如 LiteDB,MongoDB 等这类文档行数据库,原生使用 JSON 格式进行存储,在交换数据是不需要额外处理。除此之外,越来越多的关系型数据库也支持将 JSON 作为原生数据格式存储和分析。

JSON 数据类型

JSON支持多种数据类型,包括:

  • 对象:对象是JSON的核心,使用 {} 表示,对象的属性以键值对的形式表示,以逗号分隔,其中键必须是字符串并且不可重复。

  • 数组:数组使用 [] 表示,以逗号分隔。

  • 数字:不需要双引号,支持整数,小数/正数,负数。

  • 布尔:不需要双引号,只有 true 和 false 。

  • 字符串:字符串使用 "" 表示,可存储任何 Unicode 字符。

  • 空:空值使用 null 表示,表示该位置不存储任何数据。

一个标准的 JSON 数据格式如下所示,需要格式化JSON数据,可以使用JSON格式化工具

    {
        "name":"Bob",
        "age":45,
        "bald":true,
        "mark":null,
        "email":["abc@a.com","abc@b.com"]
    }

JSON 和 XML 对比

XML 全称为可扩展标记语言,也是一种文本数据交换格式,更多 XML 部分可以查看文章:什么是XML。在 JSON 出现之前,XML被大量用于应用数据交互和配置文件存储。例如,JavaScript中最早出现的http请求类名称为 XMLHttpRequest。就是基于当时 XML 为 Web 数据交换格式定下的(当然,XmlHttpRequest 不仅可以请求 XML 格式数据)。还有例如Apache,IIS等这些出现较早的应用程序,都是使用 XML 作为配置文件的。在 JSON 崛起之后,XML 被开发者迅速抛弃,现在只有在特殊情况和古老系统中才能见到 XML 的身影了。

JSON 和 XML 的主要差异如下:

JSON XML
可读性
占用大小
扩展性
其他阅读

个人简介

你好,我是猪头少年,是一名定居在云南的软件工程师,主要的开发语言为 C#JavaScript,后端使用 ASP.NET Core,桌面端使用 WPFUnity ,前端使用 AngularBabylon.js。平时喜欢自驾出游。欢迎大家联系我。

查看原文

C#本质论7.0

《C#本质论》是C#最权威、最值得尊重的参考书之一,作者为此付出了非凡的努力!Mark Michaelis的《Essential C#》系列多年来一直是畅销经典。

查看原文

WPF使用云母材质

在最新的Windows 11 OS中,微软为流畅设计(Fluent Design)带来了新的云母材质,云母材质一种不透明的动态效果,微软将其作为Windows 11应用窗体的默认材质。

查看原文

WPF 入门系列1 环境搭建

本文为WPF 入门系列的第一篇,主要介绍如何搭建 WPF 开发环境。选择 .NET 8.0 作为运行时,工具介绍了 Visual Stido,Rider 和 Visual Studio Code。

查看原文

什么是上帝对象

上帝对象(God Object)是面向对象编程(OOP)中一种特殊现象,在面向对象编程中,我们把逻辑和数据封装成一个个对象,每个对象各司其职,最终实现我们的业务,但是如果业务复杂的情况下,可能会出现一个对象封装太多的数据或者担任了太多的职责的情况,这样的对象我们称为上帝对象。

查看原文