Json

简介: Json语法数据使用名:值对表示使用{}保存对象,每个名称后面跟着一个‘:’(冒号),名/值对使用,(逗号)分割使用【】保存数组,数组值使用,(逗号)分割。

Json语法

  • 数据使用名:值对表示
  • 使用{}保存对象,每个名称后面跟着一个‘:’(冒号),名/值对使用,(逗号)分割
  • 使用【】保存数组,数组值使用,(逗号)分割。
  • 简单例子
{
  "book" : [
                        {
                                "id" : "01",
                                "language" : "java",
                                "edition" : "third"
                        },
                        {
                                "id" : "02",
                                "language" : "c++",
                                "edition" : "sencond"
                        } ]               
}
  • Json支持一下两种数据结构

名/值对集合:这一数据结构由不同的编程语言支持
有序的值列表:包括数组、列表、向量或序列等等。

Json的语法规则

Json语法是JavaScript对象表示法语法的子集
Json语法规则不复杂,它参考了C语言家族的一些习惯,学习起来并不感到陌生。

  • 数据在 名称/值对中
  • 数据由逗号分隔
  • 花括号保存对象
  • 方括号保存数组
  • 书写格式

名称:值对
注意:
名称:值对包括字段名称(在双引号中),后面写一个冒号,然后就是值
例:
"firstName" : "Json"

Json的值

可以是:

  • 数字(整数或浮点数)
  • 字符串(在双引号中)
  • 逻辑值(true或false)
  • 数组(在方括号中)
  • 对象(在花括号中)
  • null

Json对象

  • Json对象在花括号中书写
  • 对象可以包含多个名称 / 值对
    例如:
{
"firstName" : "JavaScript" , "lastName" : "Json"
}

Json数组

  • Json数组在方括号中书写:
  • 数组可以包含多个对象:
{
"employees" : [
  {
  "firstName" : "John" , "lastName" : "Doe"
  },
  {
"firstName" : "Anna" , "lastName" : "Smith"
  }]
}

上面的例子中,对象employees是包含了两个对象的数组,每一个对象代表一条关于某人(有名和姓)的记录

Json使用JavaScript语法

因为Json使用JavaScript语法,所以无需额外的软件就能处理JavaScript中的Json

var employees = [
  {
  "firstName" : "John" , "lastName" : "Doe"
  },
  {
"firstName" : "Anna" , "lastName" : "Smith"
  }
];
  • 访问如下:
employees[0].lastName;
  • 修改如下:
employees[0].lastName = "Jonse";

Json使用

Json经常应用到的场景是:
在后台应用程序中将响应数据封装成Json格式,传到前台之后,需要将Json格式转换为JavaScript对象,然后再网页中使用该数据。

把Json文本转换为JavaScript对象

Json最常见的用法之一,是从web服务器上读取Json数据(作为文件或作为HttpRequest),将Json数据转换为JavaScript对象,然后再网页上使用该数据。

  • 创建包含Json语法的JavaScript字符串
var txt = '{
"employees" : [ ' +
' { "firstName" : "John" ,
"lastName" : "Anna"
},' + 
'{ "firstName" : "Smith" ,
"lastName" : "Peter" 
}
]
}'

由于Json是JavaScript语法的子集,JavaScript函数eval()可用于将Json文本转换为JavaScript对象。
eval()函数使用的是JavaScript编译器,可解析Json文本,然后生成JavaScript对象,必须把文本包围在括号中,这样才能避免语法错误。
var obj = eval (" ( " + txt +" ) ");
在网页中使用JavaScript对象:

<p>
  firstName : <span id = "fname"></span><br />
lastName : <span id = "lname"></span><br />
</p>
<script>
document.getElementById("fname").innerHTML = obj.employees[1].firstName
document.getElementById("lname").innerHTML = obj.employees[1].lastName
</script>
相关文章
|
程序员 编译器 Linux
V 语言
V 是一门通用的编程语言,也可以作为系统语言,其网站说它非常简单,你可以在一个周末学会,它还说 Go 程序员会对该语言非常熟悉,因为 V 语言在很多方面借鉴了 Go。
519 2
|
消息中间件 NoSQL Java
SpringDataRedis 中定义消息的监听器| 学习笔记
快速学习 SpringDataRedis 中定义消息的监听器。
SpringDataRedis 中定义消息的监听器| 学习笔记
|
NoSQL Redis 索引
RedisTemplate.opsForList()用法简介并举例
RedisTemplate.opsForList()用法简介并举例
2801 2
|
算法 人工智能 开发工具
中文编程语言之Z语言初尝试 - ZLOGO 4
学习ZLOGO官方教程,记录过程中的发现. Follow the official tutorial of ZLOGO programming language, and share the findings during the way.
1012 0
|
11天前
|
弹性计算 关系型数据库 微服务
基于 Docker 与 Kubernetes(K3s)的微服务:阿里云生产环境扩容实践
在微服务架构中,如何实现“稳定扩容”与“成本可控”是企业面临的核心挑战。本文结合 Python FastAPI 微服务实战,详解如何基于阿里云基础设施,利用 Docker 封装服务、K3s 实现容器编排,构建生产级微服务架构。内容涵盖容器构建、集群部署、自动扩缩容、可观测性等关键环节,适配阿里云资源特性与服务生态,助力企业打造低成本、高可靠、易扩展的微服务解决方案。
1244 5
|
10天前
|
机器学习/深度学习 人工智能 前端开发
通义DeepResearch全面开源!同步分享可落地的高阶Agent构建方法论
通义研究团队开源发布通义 DeepResearch —— 首个在性能上可与 OpenAI DeepResearch 相媲美、并在多项权威基准测试中取得领先表现的全开源 Web Agent。
1234 87
|
11天前
|
云栖大会
阿里云云栖大会2025年9月24日开启,免费申请大会门票,速度领取~
2025云栖大会将于9月24-26日举行,官网免费预约畅享票,审核后短信通知,持证件入场
1806 13