理解JSON的语法
JSON语法可以分为三种类型:
简单值
对象
数组
简单值:
5
"Hello World"
JavaScript字符串与JSON字符串的最大区别在于,JSON字符串必须使用双引号
对象:
JSON中的对象与JavaScript字面量稍微有一些不同。下面是一个JavaScript中的对象字面量
var person={
name:"Qianwei",
age:22
}
这虽然是开发人员在JavaScript中创建对象字面量的标准方式,但JSON中的对象要求给属性加引号。
{
"name":"Qianwei",
"age":22
}
与JavaScript的对象字面量相比,JSON对象有两个地方不一样。首先,没有申明变量(JSOn中没有变量的概念)。其次,没有末尾的分号(因为这不是JavaScript语句,所以不需要分号)。再说一遍,对象的属性必须加引号,这在JSON中是必须的。属性的值可以是简单值,也已是复杂类型值。
{
"name": "Qianwei",
"age": 22,
"school": {
"name": "anqing",
"lOaction": "Anqing"
}
}
这个例子在顶级对象中嵌入了学校信息。虽然有两个“name”属性,但是是不一样的。
数组:
JSON中的第二种复杂数据类型是数组。JSON数组采用的就是JavaScript中的数组字面量形式:
var value = [25,"hi",true]
在JSON中,可以采用同样的语法表示同一个数组:
[{
"title": "Pro",
"author": "Qianwe",
"edition": 3,
"year": 2100
},
{
"title": "Pro",
"author": "Qianwe",
"edition": 4,
"year": 2100
},
{
"title": "Pro",
"author": "Qianwe",
"edition": 2,
"year": 2100
}
]
解析和序列化:
可以把JSON数据结构解析为有用的JavaScript对象。
[{
"title": "Pro",
"author": "Qianwe",
"edition": 3,
"year": 2100
},
{
"title": "Pro1",
"author": "Qianwe",
"edition": 4,
"year": 2100
},
{
"title": "Pro2",
"author": "Qianwe",
"edition": 2,
"year": 2100
}
]
------------------------------------------------------------
books[2].title //pro2
JSON对象:
JSON对象有两个方法:stringify()和parse()。在最简单的情况下,这两个方法分别用于把JavaScript对象序列化为JSON字符串和把JSON字符串解析为原生的JavaScript值。
var books = {
"title": "Pro",
"author": "Qianwe",
"edition": 4,
"year": 2100
};
var jsonText = JSON.stringify(books);
console.log(jsonText) //{"title":"Pro","author":"Qianwe","edition":4,"year":2100}
console.log(typeof jsonText) //string
var books = {
"title": "Pro",
"author": "Qianwe",
"edition": 4,
"year": 2100
};
var jsonText = JSON.stringify(books);
console.log(jsonText) //{"title":"Pro","author":"Qianwe","edition":4,"year":2100}
console.log(typeof jsonText) //string
var parseText = JSON.parse(jsonText);
console.log(parseText)
/*
{title: "Pro", author: "Qianwe", edition: 4, year: 2100}
author
:
"Qianwe"
edition
:
4
title
:
"Pro"
year
:
2100
__proto__
:
Object
*/
console.log(typeof parseText) //object
理解JSON的语法的更多相关文章
- 深入理解JSON对象
× 目录 [1]语法规则 [2]stringify [3]parse[4]eval 前面的话 json(javascript object notation)全称是javascript对象表示法,它是 ...
- JSON:如果你愿意一层一层剥开我的心,你会发现...这里水很深——深入理解JSON
我们先来看一个JS中常见的JS对象序列化成JSON字符串的问题,请问,以下JS对象通过JSON.stringify后的字符串是怎样的?先不要急着复制粘贴到控制台,先自己打开一个代码编辑器或者纸,写写看 ...
- 深入理解 JSON
我们先来看一个JS中常见的JS对象序列化成JSON字符串的问题,请问,以下JS对象通过JSON.stringify后的字符串是怎样的?先不要急着复制粘贴到控制台,先自己打开一个代码编辑器或者纸,写写看 ...
- 理解JSON:3分钟课程
理解JSON:3分钟课程 博客分类: Java综合 jsonAjaxJavaScriptXMLLISP 本文是从 Understanding JSON: the 3 minute lesson 这篇文 ...
- Json的语法及使用方法
Json的语法及使用方法 Json(JavaScript Object Notation)对象表示标识,是一种轻量级的数据交换语言,比XML更容易解析,独立于语言和平台. 语法规则: 对象用{}保存 ...
- JSON.stringify 语法实例讲解+easyui data-options属性+expires【申明:来源于网络】
JSON.stringify 语法实例讲解+easyui data-options属性+expires[申明:来源于网络] JSON.stringify 语法实例讲解:http://www.jb51. ...
- [转]JSON.stringify 语法实例讲解
原文地址:http://www.jb51.net/article/29893.htm 作用:这个函数的作用主要是为了系列化对象的. 可能有些人对系列化这个词过敏,我的理解很简单.就是说把原来是对象的类 ...
- JSON.stringify 语法解释
行为:此函数的作用主要是串行化对象. 或许有些人是过敏的字系列.我非常理解easy.是对象的类型转换成字符串类型(或者更确切的说是json类型的).就这么简单.打个例如说,你有一个类,那么你能够通过这 ...
- json基础教程|理解Json
一. 在异步应用程序中发送和接收信息时,可以选择以纯文本和 XML 作为数据格式.这一期讨论一种有用的数据格式 JavaScript Object Notation(JSON),以及如何使用它更轻松地 ...
随机推荐
- 洛谷 P2822 组合数问题
题目描述 组合数C_n^mCnm表示的是从n个物品中选出m个物品的方案数.举个例子,从(1,2,3) 三个物品中选择两个物品可以有(1,2),(1,3),(2,3)这三种选择方法.根据组合数的 ...
- 让人蛋疼的“Oracle.DataAccess.dll”
项目介绍:为前台网站提供rest接口来操作erp相关数据 涉及db:oracle11 技术方案:因为erp是用remoting来调用,我想rest实现部分调用remoting来操作减少耦合,当然性能上 ...
- SpringMVC概要总结
架构流程 1. 用户发送请求至前端控制器DispatcherServlet 2. DispatcherServlet收到请求调用HandlerMapping处理器映射器. 3. 处理器映射器根据 ...
- 月薪3万Java程序员要达到的技术层次
要达到月薪3万,一般要在北上广深杭知名的互联网公司,同时要在某一个知识领域达到专家级别,而不是简单的掌握SSH那么简单.虽然对部分人有点难,但目标还是要有的,万一实现呢? 首先三万的月薪在BAT实在太 ...
- Operating System-进程/线程内部通信-信号量和PV操作
本文介绍操作系统进程管理的两个核心概念: 信号量 PV操作 一.信号量介绍 1.1 信号量引入 信号量(Semaphore)1965年由Dijkstra引入的.信号量一般由一个值是一个变量,其值有可能 ...
- 在阿里云服务器上安装git
https://git-scm.com/book/zh/v1/%E8%B5%B7%E6%AD%A5-%E5%AE%89%E8%A3%85-Git 有yum的系统执行下列命令(已测试) $ yum in ...
- JavaScript基本概念B - 关于方法
方法也是对象 这个事需要反复强调.方法是 类型 Function 的对象,和其他对象一样,它也有方法. function gen() { return function ans(factor) { r ...
- redis学习二 排序
文章转载自:http://www.cnblogs.com/redcreen/archive/2011/02/15/1955226.html redis支持对list,set和sorted set元素的 ...
- Javascript ——Navigator对象
见 <Javascript 高级程序设计 第二版> P172 一.检测插件: 1.获取所有插件名称: 非IE浏览器:根据plugins数组, function getplugins() { ...
- Oracle、SqlServer——临时表
一.oracle 1.概述: oracle数据库的临时表的特点: 临时表默认保存在TEMP中: 表结构一直存在,直到删除:即创建一次,永久使用: 不支持主外键. 可以索引临时表和在临时表基础上建立视图 ...