Json

未匹配的标注

Json

Json概述

JSON :JavaScript对象表示法( JavaScript Object Notation )。

是一种轻量级的数据交换格式。它基于 ECMAScript 的一个子集。 JSON 采用完全独立于语言的文本格式,但是也使用了类似于 C 语言家族的习惯(包括 C、C++、C#、Java、JavaScript、Perl、Python、go等)。这些特性使 JSON 成为理想的数据交换语言。 易于人阅读和编写,同时也易于机器解析和生成 ( 一般用于提升网络传输速率 ) 。目前,json 已经成为主流的数据格式。

JSON 解析器和 JSON 库支持许多不同的编程语言。 JSON 文本格式在语法上与创建 JavaScript 对象的代码相同。由于这种相似性,无需解析器,JavaScript 程序能够使用内建的 eval() 函数,用 JSON 数据来生成原生的 JavaScript  对象。JSON 是存储和交换文本信息的语法。比 XML  更小、更快,更易解析。

JSON 具有自我描述性,语法简洁,易于理解。

JSON数据主要有两种数据结构,一种是键/值,另一种是数组的形式来表示。

可登陆 json 中文官网,获取json相关资料: www.json.org.cn/ 

Json的用途

Json

Json

Json

Json语法

首先,任何数据类型都可以通过json来表示。如:字符串、数字、对象、map、结构体、切片……
先来看一个简单的 JSON

{
"stars": [
{ "name":"Faye" ,"address":" 北京 " },
{ "name":"andy" ,"address":" 香港 " },
{ "name":"eddie","address":" 台湾 " },
]
}

JSON语法是JavaScript对象表示法语法的子集。

数据在键 / 值对中。数据由逗号分隔。花括号保存对象,也称一个文档对象。

方括号保存数组,每个数组成员用逗号隔开,并且每个数组成员可以是文档对象或者数组或者键值对。

JSON基于两种结构:“名称/值”对的集合(A collection of name/value pairs)。

不同的编程语言中,它被理解为对象(object),纪录(record),结构(struct),字典(dictionary),哈希表(hashtable),有键列表(keyed list),或者关联数组 (associative array)。值的有序列表(An ordered list of values)。在大部分语言中,它被实现为数组(array),矢量(vector),列表(list),序列(sequence)。

上述描述可归纳为JSON三种语法:

1. 键/值对。 key :value,冒号分割。

如: "name":"Faye"

key 必须是字符串类型,键/值对儿的“值”可以是:

数字(整数或浮点数)

字符串(在双引号中)

逻辑值(true 或 false)

null (空值 未设置)

对象(在花括号中)

数组(在方括号中)

key 是字符串类型,标准写法需加双引号,以免有可能报错。

2. Json对象。写在 { } 中,可包含多个key、value对。用“,”分隔。

如: { "name":"Faye" ,"address":"北京" }

3 Json数组。在 [ ] 中书写, 数组成员可以是对象、值,也可以是数组。

如:  { "stars":[ {"name":"Faye" ,"address":"北京" },
{ "name":"andy" ,"address":"香港" },
{ "name":"eddie","address":"台湾"}, ]
}

json格式化

可以使用在线格式化工具,验证json数据的正确性。

1. www.json.cn 

2. www.json.org.cn/tools/index.htm 

{
    "name":"矮大紧",                           
    "sex":"man",                                
    "age":131,                              
    "girls":["金莲","凤姐","码蓉","春哥"],          
    "成绩": [2, 14, 9, 78, 96],                   
    "家电":{"彩电":"海尔", "洗衣机":"三星"}        
 }

本文章首发在 LearnKu.com 网站上。

上一篇 下一篇
讨论数量: 0
发起讨论 只看当前版本


暂无话题~