JSON相关知识汇总_json
JSON:JavaScript 对象表示法(JavaScript Object Notation)
JSON 语法规则
数据在名称/值对中
数据由逗号分隔
花括号保存对象
方括号保存数组
JSON有6种类型的值:
对象、数组、字符串、数字、布尔值、null
JSON对象是一个容纳“名/值”对的无序集合
名字:任意字符串
值:任意类型的JSON值,包括数组和对象(对象中可以嵌入对象)
注:JSON字符串必须使用双引号(单引号会报错)
一、对象
javascript中创建字面量:
var object = { name:"lily", age:22 };
或者:
var object = { "name":"lily", "age":22 };
JSON:
{ "name":"lily", "age":22 }
二、数组
JSON数组采用的是javascript中数组字面量形式
扩展:
把数组和对象结合起来可以构成更复杂的数据结合
例如:
[ { "name":"lily", "age":22, "job":"docter" }, { "name":"nicy", "age":21, "job":"teacher" }, { "name":"lily", "age":22, "job":"AE" } ]
三、解析与序列化
JSON拥有和javascript类似的语法,可以把JSON数据结构解析为有用的javascript对象
1.JSON对象
收发JSON数据
读取、写入、发送和接收JSON数据对象时,需要转换成字符串,并能从字符串转换为JSON数据对象。(用于javascript相同的方式读写他们)
JSON对象有两个方法:
① stringify(): 把javascript对象序列化为JSON字符串
② parse(): 把JSON字符串解析为原生的javascript值
实例:
var book = { title:"professional JavaScript", authors:[ "lily" ], edition:3, year:2011 }; var jsonText = JSON.stringify(book); alert(jsonText); //{"title":"professional JavaScript","authors":["lily"],"edition":3,"year":2011} alert(typeof jsonText); //string var bookCopy = JSON.parse(jsonText); alert(typeof bookCopy); //object
这个例子中使用JSON.stringify()把一个javascript对象book序列化为一个JSON字符串,然后保存到jsonText中;将JSON字符串jsonText直接传给JSON.parse()就得到了相应的javascript值
注:序列化javascript对象时,最终值都是有效JSON数据类型的实例属性,任何无效的值都会被跳过
2.序列化选项
JSON.stringify()在序列化javascript对象时,可以接收两个参数
参数一:过滤器,可以是一个数组或函数
参数二:一个选项,表示是否在JSON字符串中保留缩进
1)过滤结果
如果过滤器的参数是数组,那么JSON.stringify()的结果中只包含数组中列出的属性
例如:
var book = { "title":"professional JavaScript", "authors":[ "lily" ], edition:3, year:2011 }; var jsonText = JSON.stringify(book,["title","edition"]); alert(jsonText); //{"title":"professional JavaScript","edition":3} alert(typeof jsonText); // string
2)字符串缩进:
JSON.stringify()方法的第三个参数用于控制结果中的缩进和空白符
3)toJSON()方法
给对象定义toJSON()方法,可以返回其自身的JSON数据格式
四、JSON访问值
第一种:简单数组
['item1','item2','item3']
取值:通过数字索引访问嵌入的值(第一项的索引为0)
['item1','item2','item3']
var items = ['item1','item2','item3'];
alert(items[0]); // item1
第二种:使用{}表示对象和符合数组
{ "key":"value" }
取值:通过键名访问嵌入的值
var oExample = { "name":"lily" };
alert(oExample.name); // lily
alert(oExample["name"]); // lily
使用这两种方式,可以用子记录(带命名的或数值的索引键)描述很多数据结构:
例如:
var oNovelist = { "firstName":"lily", "lastName":"russ", "novels": [ { "title":"and choas died", "year":"1970" }, { "title":"the famale man", "year":"1976" } ] }; var msg = oNovelist.firstName+" "+oNovelist.lastName+"'s"+" "+oNovelist.novels[0].title+" "+"was published in"+oNovelist.novels[0].year; alert(msg); // lily russ's and choas died was published in1970
以上所述就是本文的全部内容了,希望大家能够喜欢。

热AI工具

Undresser.AI Undress
人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover
用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool
免费脱衣服图片

Clothoff.io
AI脱衣机

Video Face Swap
使用我们完全免费的人工智能换脸工具轻松在任何视频中换脸!

热门文章

热工具

记事本++7.3.1
好用且免费的代码编辑器

SublimeText3汉化版
中文版,非常好用

禅工作室 13.0.1
功能强大的PHP集成开发环境

Dreamweaver CS6
视觉化网页开发工具

SublimeText3 Mac版
神级代码编辑软件(SublimeText3)

golangWebSocket与JSON的结合:实现数据传输和解析在现代的Web开发中,实时数据传输变得越来越重要。WebSocket是一种用于实现双向通信的协议,与传统的HTTP请求-响应模型不同,WebSocket允许服务器向客户端主动推送数据。而JSON(JavaScriptObjectNotation)是一种用于数据交换的轻量级格式,它简洁易读

Gson@Expose注解可用于标记字段是否公开(包含或不包含)以进行序列化或反序列化。@Expose注释可以采用两个参数,每个参数都是一个布尔值,可以采用值true或false。为了让GSON对@Expose注释做出反应,我们必须使用GsonBuilder类创建一个Gson实例,并且需要调用excludeFieldsWithoutExposeAnnotation()方法,它将Gson配置为排除所有没有Expose注释的字段进行序列化或反序列化。语法publicGsonBuilderexclud

PHP数组转JSON的性能优化方法包括:使用JSON扩展和json_encode()函数;添加JSON_UNESCAPED_UNICODE选项以避免字符转义;使用缓冲区提高循环编码性能;缓存JSON编码结果;考虑使用第三方JSON编码库。

MySQL5.7和MySQL8.0是两个不同的MySQL数据库版本,它们之间有以下一些主要区别:性能改进:MySQL8.0相对于MySQL5.7有一些性能改进。其中包括更好的查询优化器、更高效的查询执行计划生成、更好的索引算法和并行查询等。这些改进可以提高查询性能和整体系统性能。JSON支持:MySQL8.0引入了对JSON数据类型的原生支持,包括JSON数据的存储、查询和索引。这使得在MySQL中处理和操作JSON数据变得更加方便和高效。事务特性:MySQL8.0引入了一些新的事务特性,如原子

使用golang中的json.MarshalIndent函数将结构体转换为格式化的JSON字符串在使用Golang编写程序时,我们经常需要将结构体转换为JSON字符串,在这个过程中,json.MarshalIndent函数可以帮助我们实现格式化的输出。下面我们将详细介绍如何使用这个函数,并提供具体的代码示例。首先,让我们创建一个包含一些数据的结构体。以下是示

C#开发中如何处理XML和JSON数据格式,需要具体代码示例在现代软件开发中,XML和JSON是广泛应用的两种数据格式。XML(可扩展标记语言)是一种用于存储和传输数据的标记语言,而JSON(JavaScript对象表示)是一种轻量级的数据交换格式。在C#开发中,我们经常需要处理和操作XML和JSON数据,本文将重点介绍如何使用C#处理这两种数据格式,并附上

使用PHP的json_encode()函数将数组或对象转换为JSON字符串并格式化输出,可以让数据在不同的平台和语言之间进行传递和交换变得更加容易。本文将介绍json_encode()函数的基本用法,以及如何将JSON字符串格式化输出。一、json_encode()函数的基本用法json_encode()函数的基本语法如下:stringjson_encod

Jackson库中的注解可控制JSON序列化和反序列化:序列化:@JsonIgnore:忽略属性@JsonProperty:指定名称@JsonGetter:使用获取方法@JsonSetter:使用设置方法反序列化:@JsonIgnoreProperties:忽略属性@JsonProperty:指定名称@JsonCreator:使用构造函数@JsonDeserialize:自定义逻辑
