【JSON介绍】什么是JSON?

本文介绍了JSON的基本概念,探讨了其与XML的区别,并展示了JSON在实际数据传输中的常见格式。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

相关文章:

  1. 【JSON介绍】什么是JSON?
  2. 【Ajax】Ajax介绍
  3. 【Ajax】XMLHttpRequest介绍以及在前端如何实现Ajax
  4. 【Struts2】Sturts2如何实现JSON的数据输出,完成Ajax响应

写在前面 : JSON就是一种用于数据交换的格式语言,主要有两个结构,键值对和数组,通过一定的封装可以传输较为复杂的数据格式。

这里还有一份官方文档(中文)可供大家参考
不过我更推荐来自维基百科的JSON介绍

JSON简述

JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式。 易于人阅读和编写。同时也易于机器解析和生成。 它基于JavaScript Programming Language, Standard ECMA-262 3rd Edition - December 1999的一个子集。 JSON采用完全独立于语言的文本格式,但是也使用了类似于C语言家族的习惯(包括C, C++, C#, Java, JavaScript, Perl, Python等)。 这些特性使JSON成为理想的数据交换语言。

JSON与XML比较

JSON与XML最大的不同在于XML是一个完整的标记语言,而JSON不是。这使得XML在程序判读上需要比较多的功夫。主要的原因在于XML的设计理念与JSON不同。XML利用标记语言的特性提供了绝佳的延展性(如XPath),在数据存储,扩展及高级检索方面具备对JSON的优势,而JSON则由于比XML更加小巧,以及浏览器的内建快速解析支持,使得其更适用于网络数据传输领域。

JSON建构于两种结构

  • “名称/值”对的集合(A collection of name/value pairs)。不同的语言中,它被理解为对象(object),纪录(record),结构(struct),字典(dictionary),哈希表(hash table),有键列表(keyed list),或者关联数组 (associative array)。
  • 值的有序列表(An ordered list of values)。在大部分语言中,它被理解为数组(array)。

名称/值 : {key:value}
数组:[value1,value2,value3]

JSON的语法

  • 对象是一个无序的“‘名称/值’对”集合。一个对象以“{”(左括号)开始,“}”(右括号)结束。每个“名称”后跟一个“:”(冒号);“‘名称/值’ 对”之间使用“,”(逗号)分隔。

例如:

{
    "code": 200,
    "msg": "成功"
}
  • 数组是值(value)的有序集合。一个数组以“[”(左中括号)开始,“]”(右中括号)结束。值之间使用“,”(逗号)分隔。

例如:

[1,2,3,4,5]

但是这种写法有时候单纯的看这个json无法正确的知道这个json的含义,所以一般这样写:

{
    "studentNumber": [
        1,
        2,
        3,
        4,
        5
    ]
}

代表这个数组传输的是学生的学号

一般情况下,我们会使用一些固定的格式来封装json,比如下面的这个格式:

{
    "code": 200,
    "msg": "成功",
    "data": [
        {
            "name": "name1",
            "email": "email1"
        },
        {
            "name": "name2",
            "email": "email2"
        },
        {
            "name": "name3",
            "email": "email3"
        }
    ]
}

可能大家第一眼看着这个JSON过于复杂,是不是在封装的时候需要很多代码才能完成。后面我会单独写一篇使用Google的Gson来完成这个JSON格式的封装。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值