JSON 基础结构

news/2024/12/12 22:44:46/

什么是JSON

JSON,说白了就是JavaScript用来处理数据的一种格式,这种格式非常简单易用。

JSON,大部分都是用来处理JavaScript和web服务器端之间的数据交换,把后台web服务器的数据传递到前台,然后使用JavaScript进行处理,例如ajax等。

JSON支持的语言非常多,包括JavaScript、C#、PHP、Java等等,这是由于JSON独立于语言的轻量级的数据交换格式,这个特点有点类似于SQL语言。

JSON的两种结构

JSON结构共有2种:

  1. 对象结构;
  2. 数组结构;

对象结构

对象结构是使用大括号“{}”括起来的,大括号内是由0个或多个用英文逗号分隔的“关键字:值”对(key:value)构成的。

语法:

var jsonObj =
{"键名1":值1,"键名2":值2,……"键名n":值n
}

说明:

jsonObj指的是json对象。对象结构是以“{”开始,到“}”结束。其中“键名”和“值”之间用英文冒号构成对,两个“键名:值”之间用英文逗号分隔。

注意,这里的键名是字符串,但是值可以是数值、字符串、对象、数组或逻辑true和false。

JSON数组结构

JSON数组结构是用中括号“[]”括起来,中括号内部由0个或多个以英文逗号“,”分隔的值列表组成。

语法:

var arr =
[{"键名1":值1,"键名2":值2},{"键名3":值3,"键名4":值4},……
]

说明:

arr指的是json数组。数组结构是以“[”开始,到“]”结束,这一点跟JSON对象不同。在JSON数组中,每一对“{}”相当于一个JSON对象,大家看看像不像?而且语法都非常类似。

注意,这里的键名是字符串,但是值可以是数值、字符串、对象、数组或逻辑true和false。

对于JSON对象结构和JSON数组结构的读取、写入、修改、删除和遍历等操作请到相应章节认真查看。

代码片断1

代码如下:

{"button":[{    "type":"click","name":"今日歌曲","key":"V1001_TODAY_MUSIC"},{"type":"click","name":"歌手简介","key":"V1001_TODAY_SINGER"},{"name":"菜单","sub_button":[{    "type":"view","name":"搜索","url":"http://www.soso.com/"},{"type":"view","name":"视频","url":"http://v.qq.com/"},{"type":"click","name":"赞一下我们","key":"V1001_GOOD"}]}]}

然后用PHP的json_encode()函数,对一二维数组转换成JSON形式
 但转换出来的JSON形式:

代码片断2

代码如下:

{"button": {"1": {"type": "click","name": "今日歌曲","key": "V1001_TODAY_MUSIC"},"2": {"type": "click","name": "歌手简介","key": "V1001_TODAY_SINGER"},"3": {"name": "菜单","sub_button": [{"type": "view","name": "搜索","url": "http://www.soso.com/"},{"type": "view","name": "视频","url": "http://v.qq.com/"},{"type": "click","name": "赞一下我们","key": "V1001_GOOD"}]}}
}

看出来形式是不一致的。

只能来了解一下JSON的结构形式。
JSON有两种数据:1.无序的对象结构;2.有序的数组结构


1.无序的对象结构
 无序的对象结构在不同语言中称法不同,比如在Python中称为字典,在JS中称为JSON对象……
 总之就是键/值对组合形式。
 刚才我转换出来的JSON结构就是无序的键/值对组合


2.有序的数组结构
 有序的的数组结构,即代码片断2所展示的结构。
 将数组作为有序数组进行转换JSON,就可以得到有序的JSON数组结构。

在下一节内容中,我们一起来认识 JSON 数据格式!


http://www.ppmy.cn/news/37039.html

相关文章

Qt中connect中[]()和[]()有什么区别?

1、Qt中connect中[]()和[&]()有什么区别? 你想知道 connect 中 和 & 有什么区别吗?根据我查到的信息,这两种写法都是 lambda 表达式的一种,它们可以用来创建匿名函数对象,用于传递给 connect 的槽参数。它们的…

【新2023Q2模拟题JAVA】华为OD机试 - 预订酒店

最近更新的博客 华为od 2023 | 什么是华为od,od 薪资待遇,od机试题清单华为OD机试真题大全,用 Python 解华为机试题 | 机试宝典【华为OD机试】全流程解析+经验分享,题型分享,防作弊指南华为od机试,独家整理 已参加机试人员的实战技巧本篇题解:预订酒店 题目 放暑假了,橡…

你知道Python 最常用的 20 个包吗(按照使用频率排序)

文章目录numpy(数据处理和科学计算)pandas(数据处理和分析)matplotlib(数据可视化)scikit-learn(机器学习工具)tensorflow(深度学习框架)keras(深…

通过Interceptor以及Redis实现接口访问防刷

方式一 以下是通过Interceptor以及Redis实现接口访问防刷的Java代码示例: 首先,创建一个自定义拦截器类,实现HandlerInterceptor接口,并在preHandle方法中添加接口防刷逻辑。例如: Component public class RateLimi…

丢失了packet.dll原因和解决方法全面指南

packet.dll是Windows操作系统中的一个重要文件,它主要用于网络通信,如果丢失了这个文件,可能会导致网络连接问题。本文将探讨packet.dll文件丢失的原因,并提供相应的解决方法。 一、丢失packet.dll文件的原因 1. 病毒感染&#x…

积性函数及其初级应用

积性函数及其初级应用 垃圾博客,我本地 LaTeX 挂了,艹 大量内容和入门方式都参考了 莫比乌斯反演与数论函数 。感谢 CMD 大爷! 0xFF 前置知识 1.质数及其判定,质因数及其分解 小学课本里面讲过质数的定义了,不细讲…

【C++】牛客面试经典题,查找组成一个偶数最接近的两个素数.二进制插入.统计回文.连续最大和.不要二.把字符串转换成整数

目录 1.查找组成一个偶数最接近的两个素数 2.二进制插入 3.strlen和sizeof 4.strcat和strcpy 5.多维数组的解引用 6. 统计回文 7. 连续最大和 8.转义字符% 9.不要二 10.把字符串转换成整数 1.查找组成一个偶数最接近的两个素数 观察这个题目的要求,我们…

华为OD机试【密室逃生游戏】

密室逃生游戏 题目 小强增在参加《密室逃生》游戏,当前关卡要求找到符合给定 密码 K(升序的不重复小写字母组 成) 的箱子, 并给出箱子编号,箱子编号为 1~N 。 每个箱子中都有一个 字符串 s ,字符串由大写字…