json分享
JSON是什么?
JavaScript Object Notation (JSON) is a text format for the serialization of structured data. It is derived from the object literals of JavaScript
JSON是JavaScript Object Notation的简称,JSON易于访问且结构性强,用来存储信息(数据)。
JSON例子
和 XML 一样,JSON 也是基于纯文本的数据格式。由于 JSON 天生是为 JavaScript 准备的,因此,JSON 的数据格式非常简单,您可以用 JSON 传输一个简单的 String,Number,Boolean,也可以传输一个数组,或者一个复杂的 Object 对象。
1、Object
var person = {
"name" : "Lily",
"gender" : "female",
"age" : "24"
}
我们创建了一个对象,可以通过person访问。在这个对象中我们声明3组数据,这些数据使用“名称:值”对的集合,以逗号分隔。我们可以直接通过属性的名称访问,例如:
console.log("姓名:"+person.name+" 性别:"+person.gender+" 年龄:"+person.age);
2、Array
var articles = [{ "id" : 111, "article" : "html", "author":"Lily" }, { "id" : 222, "article" : "css", "author":"Jack" } ]
对于Array格式的JSON数据,我们可以通过索引来访问:
console.log(articles[0].id); //
console.log(articles[1].author); //Jack
其他JSON例子:
{
"africaLagos": [
{
"from": -377711769600000,
"to": -1588464816000,
"dst": false,
"offset": 816,
"name": "LMT"
},
{
"from": -1588464816000,
"to": 253402300799000,
"dst": false,
"offset": 3600,
"name": "WAT"
}
]
}
Facebook JSON File
{
"data": [
{
"id": "X999_Y999",
"from": {
"name": "Tom Brady", "id": "X12"
},
"message": "Looking forward to 2010!",
"actions": [
{
"name": "Comment",
"link": "http://www.facebook.com/X999/posts/Y999"
},
{
"name": "Like",
"link": "http://www.facebook.com/X999/posts/Y999"
}
],
"type": "status",
"created_time": "2010-08-02T21:27:44+0000",
"updated_time": "2010-08-02T21:27:44+0000"
},
{
"id": "X998_Y998",
"from": {
"name": "Peyton Manning", "id": "X18"
},
"message": "Where's my contract?",
"actions": [
{
"name": "Comment",
"link": "http://www.facebook.com/X998/posts/Y998"
},
{
"name": "Like",
"link": "http://www.facebook.com/X998/posts/Y998"
}
],
"type": "status",
"created_time": "2010-08-02T21:27:44+0000",
"updated_time": "2010-08-02T21:27:44+0000"
}
]
}
Colors JSON File
{
"colorsArray":[{
"colorName":"red",
"hexValue":"#f00"
},
{
"colorName":"green",
"hexValue":"#0f0"
},
{
"colorName":"blue",
"hexValue":"#00f"
},
{
"colorName":"cyan",
"hexValue":"#0ff"
},
{
"colorName":"magenta",
"hexValue":"#f0f"
},
{
"colorName":"yellow",
"hexValue":"#ff0"
},
{
"colorName":"black",
"hexValue":"#000"
}
]
}
iPhone Menu JSON
{
"menu": {
"header": "xProgress SVG Viewer",
"items": [
{
"id": "Open"
},
{
"id": "OpenNew",
"label": "Open New"
},
null,
{
"id": "ZoomIn",
"label": "Zoom In"
},
{
"id": "ZoomOut",
"label": "Zoom Out"
},
{
"id": "OriginalView",
"label": "Original View"
},
null,
{
"id": "Quality"
},
{
"id": "Pause"
},
{
"id": "Mute"
},
null,
{
"id": "Find",
"label": "Find..."
},
{
"id": "FindAgain",
"label": "Find Again"
},
{
"id": "Copy"
},
{
"id": "CopyAgain",
"label": "Copy Again"
},
{
"id": "CopySVG",
"label": "Copy SVG"
},
{
"id": "ViewSVG",
"label": "View SVG"
},
{
"id": "ViewSource",
"label": "View Source"
},
{
"id": "SaveAs",
"label": "Save As"
},
null,
{
"id": "Help"
},
{
"id": "About",
"label": "About xProgress CVG Viewer..."
}
]
}
}
Customer Form JSON
{
"firstName": "John",
"lastName": "Smith",
"age": 25,
"address":
{
"streetAddress": "21 2nd Street",
"city": "New York",
"state": "NY",
"postalCode": "10021"
},
"phoneNumber":
[
{
"type": "home",
"number": "212 555-1234"
},
{
"type": "fax",
"number": "646 555-4567"
}
]
}
Products Database JSON File
{
"name":"Product",
"properties":
{
"id":
{
"type":"number",
"description":"Product identifier",
"required":true
},
"name":
{
"description":"Name of the product",
"type":"string",
"required":true
},
"price":
{
"type":"number",
"minimum":0,
"required":true
},
"tags":
{
"type":"array",
"items":
{
"type":"string"
}
}
}
}
- 空格(空格、tab、换行、新行或回车)对JSON没有影响。它也可以压缩,对数据没有影响。
- 对象字面名称必须小写(例如, null, false, true 等)。
- 把所有名称/值放在引号中。
- 在使用你的JSON之前,先验证是否是有效的。 http://www.jsonlint.com
- JSON默认Unicode编码为UTF-8(查看所有应用程序的媒体类型http://www.iana.org/assignments/media-types/application/index.html)
- JSON文本的MIME媒体类型为application /json
JSON解析
JSON.parse(): 将JSON字符串转换成对象或数组,若失败则报错。
var str = '{"name":"Lily","age":"18"}';
console.log(typeof str); // string var obj = JSON.parse(str);
console.log(typeof obj); //object
JSON.stringify(): 用于将一个对象解析成字符串。
var obj = {"name":"Lily","age":"18"};
console.log(typeof obj); // object var str= JSON.stringify(obj);
console.log(typeof str); //string
JSON转义字符
下面的字符需要转义:引号", 斜杠/,反斜杠\, 换行n,回车r, tab t
引号"
var obj = {"name":"\"\/\\\n\r\tLily","age":"23"};
console.log(obj.name);
//output: "/\ Lily
JSON工具
BE JSON JSON在线校验
SO JSON 在线JSON校验
JSON Parser Online 简单的字符串解析和JS Eval
JSONLint 非常流行的在线JSON校验
Online JSON Tree Viewer 加载JSON文件,展示数据的树结构
参考文章:http://www.copterlabs.com/blog/json-what-it-is-how-it-works-how-to-use-it/
http://www.sitepoint.com/basics-json-syntax-tips/
json分享的更多相关文章
- Windows Terminal 美化分享
美化前: 美化后: Json分享: { "acrylicOpacity": 0.75, "closeOnExit": true, "colorSch ...
- asp.net C# 实现微信接口权限开发类
当前微信接口类已实现以下接口,代码上如果不够简洁的,请自行处理. 1.获取access_token 2.获取用户基本信息 3.生成带参数二维码 4.新增永久素材 5.新增临时素材 6.发送微信模版 7 ...
- 持续集成---jenkins环境部署
一.环境准备 操作系统:linux系统,此时我安装的是centos6.5,操作步骤具体见博客<虚拟机安装centos6.5> 依赖软件:1.jdk, 2.tomcat9(需要安装两个,一个 ...
- 【无私分享:ASP.NET CORE 项目实战(第六章)】读取配置文件(一) appsettings.json
目录索引 [无私分享:ASP.NET CORE 项目实战]目录索引 简介 在我们之前的Asp.net mvc 开发中,一提到配置文件,我们不由的想到 web.config 和 app.config,在 ...
- 老李分享: JSON
老李分享: JSON poptest是国内唯一一家培养测试开发工程师的培训机构,以学员能胜任自动化测试,性能测试,测试工具开发等工作为目标.如果对课程感兴趣,请大家咨询qq:908821478, ...
- js便签笔记(10) - 分享:json.js源码解读笔记
1. 如何理解“json” 首先应该意识到,json是一种数据转换格式,既然是个“格式”,就是个抽象的东西.它不是js对象,也不是字符串,它只是一种格式,一种规定而已. 这个格式规定了如何将js对象转 ...
- PHP实现返回JSON和XML的类分享
PHP实现返回JSON和XML的类分享 <?php class Reponse{ //private $result = array('code'=null,'messa ...
- 金蝶随手记团队分享:还在用JSON? Protobuf让数据传输更省更快(实战篇)
本文作者:丁同舟,来自金蝶随手记技术团队. 1.前言 本文接上篇<金蝶随手记团队分享:还在用JSON? Protobuf让数据传输更省更快(原理篇)>,以iOS端的Objective-C代 ...
- 分享一个小工具:Excel表高速转换成JSON字符串
在游戏项目中一般都须要由策划制作大量的游戏内容,当中非常大一部分是使用Excel表来制作的.于是程序就须要把Excel文件转换成程序方便读取的格式. 之前项目使用的Excel表导入工具都是通过Offi ...
随机推荐
- Linux 安装gcc4.8版本
1.下载安装包 http://ftp.tsukuba.wide.ad.jp/software/gcc/releases/gcc-4.8.1/ 2.解压 .tar.gz 3.下载编译所需的依赖包 cd ...
- ASP.NET Cookie的登录验证
做用户登录,我一直用form验证的方式.有时候,为了节省时间,用户希望用户名输入框能够记住用户名,省得下次重新输入.这个时候光用form验证是不行的,因为form验证的话,用户一退出系统就失效了,所以 ...
- [问题解决]Deepin环境变量设置无效解决
将环境变量的设置放在这里: gedit ~/.bashrc 详见参考: linux下如何设置环境变量PATH : http://blog.csdn.net/witsmakemen/article/d ...
- mongodb备份、还原
1.mongodb 备份 mongodump 命令可以使用可用的选项的列表. 此命令将仅备份指定的数据库,在指定的路径 语法 描述 示例 mongodump --host HOST_NAME --p ...
- hihocoder1829 Tomb Raider
思路: 暴力枚举. 实现: #include <iostream> #include <set> #include <vector> using namespace ...
- explian使用介绍
1).id列数字越大越先执行,如果说数字一样大,那么就从上往下依次执行,id列为null的就表是这是一个结果集,不需要使用它来进行查询. 2).select_type列常见的有:A:simple:表示 ...
- mybatis 部署日志
<!-- 打印查询语句 --> <setting name="logImpl" value="STDOUT_LOGGING" /> &l ...
- 电脑连接海信电视 HDMI
注意:我们家的电视是海信的,所以不能代表所有的电视哦~~~ 家里电视有线电视已经过期很长时间了,早就想把电脑连接到电视上用电视做显示器的心了,今天来兴趣了,就弄了一下!!! 用电脑连接电视需要先解决两 ...
- labview密码忘记怎么办,如何破解labview密码,vi密码md5码破解重置
labview密码忘记了或者需要破解labview密码,可以找到vi文件的md5码,把里面的md5码拿到网站http://cmd5.la解密就可以了. 把vi文件的32位md5码放到网站cmd5.la ...
- C#中Json进行序列化时去掉值为null的节点
当我们用json文件为数据源时,并对json数据进行操作时可能会产生一些数值为null的节点生成,想要去掉null的节点需要一些操作 本文用一个简单的工具对json进行操作 工具:Newtonsoft ...