JSON 是个什么??!!!
json就是字符串!
json就是字符串!
json就是字符串!
重要的事情说三遍!
json本质就是字符串,经过序列化的字符串。json的出现只是方便传输。
你可以将所有的数据类型用序列化函数序列化json字符串,然后再用反序列化函数恢复其初始数据类型。
Json的规格非常简单,只用一个页面几百个字就能说清楚,而且Douglas Crockford声称这个规格永远不必升级,因为该规定的都规定了。
1) 并列的数据之间用逗号(", ")分隔。
2) 映射用冒号(": ")表示。
3) 并列数据的集合(数组)用方括号("[]")表示。
4) 映射的集合(对象)用大括号("{}")表示
JSON格式支持的数据类型有以下:
| 类型 | 描述 |
|---|---|
| Number | 在JavaScript中的双精度浮点格式 |
| String | 双引号的反斜杠转义的Unicode |
| Boolean | true 或 false |
| Array | 值的有序序列 |
| Value | 它可以是一个字符串,一个数字,真的还是假(true/false),空(null )等 |
| Object | 无序集合键值对 |
| Whitespace | 可以使用任何一对中的令牌 |
| null | empty |
数字
这是一个双精度浮点格式在JavaScript中,这取决于执行
八进制和十六进制格式不被使用。
非NaN或无穷大用数字
以下的表格显示数字类型:
| 类型 | 描述 |
|---|---|
| Integer | Digits 1-9, 0 and positive or negative |
| Fraction | Fractions like .3, .9 |
| Exponent | Exponent like e, e+, e-,E, E+, E- |
语法:
var json-object-name = { string : number_value, .......}
实例:
示例显示数字的数据类型值不被引用:
var obj = {marks: 97}
字符串
这是一个零个或多个双引号的Unicode字符用反斜杠转义序列。
字符是一个字符串,即字符串长度为1
该表显示字符串类型:
| 类型 | 描述 |
|---|---|
| " | double quotation |
| reverse solidus | |
| / | solidus |
| b | backspace |
| f | form feed |
| n | new line |
| r | carriage return |
| t | horizontal tab |
| u | four hexadecimal digits |
语法:
var json-object-name = { string : "string value", .......}
示例:
示例显示字符串数据类型:
var obj = {name: 'Amit'}
布尔
它包括true或false值
语法:
var json-object-name = { string : true/false, .......}
示例:
var obj = {name: 'Amit', marks: 97, distinction: true}
数组
它是值的有序集合
这些被封闭方括号这意味着阵列开始。并以...结束
值之间以,(逗号)
数组索引可以从0或1开始
键的名称时,应使用连续整数阵列
语法:
[ value, .......]
示例:
例如数组,包含多个对象:
{
"books": [
{ "language":"Java" , "edition":"second" },
{ "language":"C++" , "lastName":"fifth" },
{ "language":"C" , "lastName":"third" }
]
}
对象
这是一个无序设置的名称/值对
对象被括在大括号中,它开始'{' 并以'}' 结束
每个名称后跟“:”(冒号)和名称/值对 ,(逗号)分隔。
键都必须是字符串应该是彼此不同的
对象时,应使用键名是任意的字符串
语法:
{ string : value, .......}
示例:
例如显示对象:
{
"id": "011A",
"language": "JAVA",
"price": 500,
}
空白
它可以插入到任何一对令牌之间。它可以添加到代码更具可读性。实例表明 不带空格的声明:
语法:
{string:" ",....}
EXAMPLE:
var i= " sachin";
var j = " saurav"
null
这是空类型
语法:
null
示例:
var i = null; if(i==1)
{
document.write("<h1>value is 1</h1>");
}
else
{
document.write("<h1>value is null</h1>");
}
JSON 值
它包括:
number (integer or floating point)
string
boolean
array
object
null
语法:
String | Number | Object | Array | TRUE | FALSE | NULL
示例:
var i =1;
var j = "sachin";
var k = null;
JSON 是个什么??!!!的更多相关文章
- 使用TSQL查询和更新 JSON 数据
JSON是一个非常流行的,用于数据交换的文本数据(textual data)格式,主要用于Web和移动应用程序中.JSON 使用“键/值对”(Key:Value pair)存储数据,能够表示嵌套键值对 ...
- 【疯狂造轮子-iOS】JSON转Model系列之二
[疯狂造轮子-iOS]JSON转Model系列之二 本文转载请注明出处 —— polobymulberry-博客园 1. 前言 上一篇<[疯狂造轮子-iOS]JSON转Model系列之一> ...
- 【疯狂造轮子-iOS】JSON转Model系列之一
[疯狂造轮子-iOS]JSON转Model系列之一 本文转载请注明出处 —— polobymulberry-博客园 1. 前言 之前一直看别人的源码,虽然对自己提升比较大,但毕竟不是自己写的,很容易遗 ...
- Taurus.MVC 2.2 开源发布:WebAPI 功能增强(请求跨域及Json转换)
背景: 1:有用户反馈了关于跨域请求的问题. 2:有用户反馈了参数获取的问题. 3:JsonHelper的增强. 在综合上面的条件下,有了2.2版本的更新,也因此写了此文. 开源地址: https:/ ...
- .NET Core系列 : 2 、project.json 这葫芦里卖的什么药
.NET Core系列 : 1..NET Core 环境搭建和命令行CLI入门 介绍了.NET Core环境,本文介绍.NET Core中最重要的一个配置文件project.json的相关内容.我们可 ...
- 一个粗心的Bug,JSON格式不规范导致AJAX错误
一.事件回放 今天工作时碰到了一个奇怪的问题,这个问题很早很早以前也碰到过,不过没想到过这么久了竟然又栽在这里. 当时正在联调一个项目,由于后端没有提供数据接口,于是我直接本地建立了一个 json ...
- JSON.parse()和JSON.stringify()
1.parse 用于从一个字符串中解析出json 对象.例如 var str='{"name":"cpf","age":"23&q ...
- json与JavaScript对象互换
1,json字符串转化为JavaScript对象: 方法:JSON.parse(string) eg:var account = '{"name":"jaytan&quo ...
- .NET平台开源项目速览(18)C#平台JSON实体类生成器JSON C# Class Generator
去年,我在一篇文章用原始方法解析复杂字符串,json一定要用JsonMapper么?中介绍了简单的JSON解析的问题,那种方法在当时的环境是非常方便的,因为不需要生成实体类,结构很容易解析.但随着业务 ...
- WebApi接口 - 响应输出xml和json
格式化数据这东西,主要看需要的运用场景,今天和大家分享的是webapi格式化数据,这里面的例子主要是输出json和xml的格式数据,测试用例很接近实际常用情况:希望大家喜欢,也希望各位多多扫码支持和点 ...
随机推荐
- spark_to_kakfa
package kafka import java.io.InputStream import java.text.SimpleDateFormat import java.util.{Date, H ...
- 深入理解Java虚拟机阅读心得(二)
垃圾收集 程序计数器.虚拟机栈.本地方法栈三个区域随线程而生,随线程而灭:这几个区域的内存分配和回收都具备稳定性,不需要过多的考虑回收的问题.而Java堆和方法区则不一样. Java堆中存储了几乎所有 ...
- python-nmap的函数学习
简介 python-nmap是一个使用nmap进行端口扫描的python库,它可以很轻易的生成nmap扫描报告,并且可以帮助系统管理员进行自动化扫描任务和生成报告.同时,它也支持nmap脚本输出. 可 ...
- JS变量重复声明以及忽略var 声明的问题及其背后的原理
腾讯的一个笔试题,先看一下 var a = 100; function fn() { alert(a); //undefined var a = 200; alert(a); //200 } fn() ...
- NEO智能合约开发(二)再续不可能的任务
NEO智能合约开发中,应用合约比较简单,是的你没看错,应用合约比较简单. 应用合约三部曲,发布.调用.看结果.除了看结果工具比较缺乏,发布调用neogui最起码可以支撑你测试. 鉴权合约比较麻 ...
- 输入、输出与Mad Libs 游戏。
name1=input('请输入一个名字:') name2=input('再输入一个名字:') time1=input('请输入一段时间:') print('{},是傻子,{},{}吃不了鸡'.for ...
- linux学习:特殊符号,数学运算,图像与数组与部分终端命令用法整理
指令:let.expr.array.convert.tput.date.read.md5.ln.apt.系统信息 一:特殊符号用法整理 系统变量 $# 是传给脚本的参数个数 $0 是脚本本身的名字 $ ...
- Linux各目录及每个目录的详细介绍(转载)
[常见目录说明] 目录 /bin 存放二进制可执行文件(ls,cat,mkdir等),常用命令一般都在这里. /etc 存放系统管理和配置文件 /home 存放所有用户文件的根目录,是用户主目录的基点 ...
- Java 中的字符串与 []byte 字节数组
一.字符串 1.比较 String.HashSet.List 中的 contains 方法 其中, String.List 都使用了 indexOf 方法,本质是遍历,时间效率为 O(n).而 Has ...
- cadence分列元件原理图库的设计