json学习笔记(一)

1、JSON简介:

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

JSON 是存储和交换文本信息的语法。类似 XML。

JSON 比 XML 更小、更快,更易解析。

JSON 实例

{
"sites": [
    { "name":"华中科技大学" , "url":"www.hust.edu.cn" },
    { "name":"google" , "url":"www.google.com" },
    { "name":"微博" , "url":"www.weibo.com" }
  ]
}

1.1 什么是 JSON ?

  • JSON 指的是 JavaScript 对象表示法(JavaScript Object Notation)
  • JSON 是轻量级的文本数据交换格式
  • JSON 独立于语言:JSON 使用 Javascript语法来描述数据对象,但是 JSON 仍然独立于语言和平台。JSON 解析器和 JSON 库支持许多不同的编程语言。 目前非常多的动态(PHP,JSP,.NET)编程语言都支持JSON。
  • JSON 具有自我描述性,更易理解

1.2 JSON - 转换为 JavaScript 对象

  JSON 文本格式在语法上与创建 JavaScript 对象的代码相同。

  由于这种相似性,无需解析器,JavaScript 程序能够使用内建的 eval() 函数,用 JSON 数据来生成原生的 JavaScript 对象。

2、JSON 语法

  JSON 语法是 JavaScript 语法的子集。

2.1 JSON 语法规则

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

  • 数据在名称/值对中
  • 数据由逗号分隔
  • 大括号保存对象
  • 中括号保存数组

2.2 JSON 名称/值对 

JSON 数据的书写格式是:名称/值对。

名称/值对包括字段名称(在双引号中),后面写一个冒号,然后是值:

"name" : "华中科技大学"  等价于这条 JavaScript 语句:name = "菜鸟教程"

2.3 JSON 值  

JSON 值可以是:

  • 数字(整数或浮点数)
  • 字符串(在双引号中)
  • 逻辑值(true 或 false)
  • 数组(在中括号中)
  • 对象(在大括号中)
  • null

2.4 JSON 数字

  JSON 数字可以是整型或者浮点型:{ "age":30 }

2.5 JSON 对象 

  JSON 对象在大括号({})中书写:

  对象可以包含多个名称/值对:{ "name":"华中科技大学" , "url":"www.hust.edu.cn" }

2.6 JSON 数组

  JSON 数组在中括号中书写:

  数组可包含多个对象 

{
"sites": [
    { "name":"华中科技大学" , "url":"www.hust.edu.cn" },
    { "name":"google" , "url":"www.google.com" },
    { "name":"微博" , "url":"www.weibo.com" }
  ]
}

2.7 JSON 布尔值

  JSON 布尔值可以是 true 或者 false:{ "flag":true }

2.8 JSON null

  JSON 可以设置 null 值:{ "root":null }

2.9 JSON 使用 JavaScript 语法

  JSON 使用 JavaScript 语法,所以无需额外的软件就能处理 JavaScript 中的 JSON。

通过 JavaScript,您可以创建一个对象数组,并像这样进行赋值:  

var sites = [
    { "name":"华中科技大学" , "url":"www.hust.edu.cn" },
    { "name":"google" , "url":"www.google.com" },
    { "name":"微博" , "url":"www.weibo.com" }
];

JavaScript 对象数组中的第一项(索引从 0 开始):

sites[0].name;   返回的内容是:华中科技大学

可以像这样修改数据: sites[0].name="清华大学";

2.10 JSON 文件

  • JSON 文件的文件类型是 ".json"
  • JSON 文本的 MIME 类型是 "application/json"

3 JSON 对象

语法实例:{ "name":"runoob", "alexa":10000, "site":null }

JSON 对象使用在大括号({})中书写。

对象可以包含多个 key/value(键/值)对。

key 必须是字符串,value 可以是合法的 JSON 数据类型(字符串, 数字, 对象, 数组, 布尔值或 null)。

key 和 value 中使用冒号(:)分割。

每个 key/value 对使用逗号(,)分割。

3.1访问对象值

使用点号(.)来访问对象的值:

 1 <body>
 2
 3   <p>你可以使用点号(.)来访问 JSON 对象的值:</p>
 4
 5   <p id="demo"></p>
 6
 7   <script>
 8
 9     var myObj, x;
10     myObj = { "name":"runoob", "alexa":10000, "site":null };
11     x = myObj.name;
12     document.getElementById("demo").innerHTML = x;
13
14   </script>
15
16 </body>

使用中括号([])来访问对象的值:

<p>你也可以使用中括号([])来访问 JOSN 对象的值:</p>

<p id="demo"></p>

<script>

var myObj, x;
myObj = myObj = { "name":"runoob", "alexa":10000, "site":null };
x = myObj["name"];
document.getElementById("demo").innerHTML = x;

</script>

3.2 循环对象

  使用 for-in 来循环对象的属性: 

1 var myObj = { "name":"runoob", "alexa":10000, "site":null };
2 for (x in myObj) {
3     document.getElementById("demo").innerHTML += x + "<br>";
4 }

  for-in 循环对象的属性时,使用中括号([])来访问属性的值: 

1 var myObj = { "name":"runoob", "alexa":10000, "site":null };
2 for (x in myObj) {
3     document.getElementById("demo").innerHTML += myObj[x] + "<br>";
4 }

3.3 嵌套 JSON 对象

  JSON 对象中可以包含另外一个 JSON 对象:  

1 myObj = {
2     "name":"runoob",
3     "alexa":10000,
4     "sites": {
5         "site1":"www.hust.edu.cn",
6         "site2":"m.hust.edu.cn",
7         "site3":"c.hust.edu.cn"
8     }
9 }

  使用点号(.)或者中括号([])来访问嵌套的 JSON 对象。  

x = myObj.sites.site1;
// 或者
x = myObj.sites["site1"];

3.4 修改值

使用点号(.)来修改 JSON 对象的值:

myObj.sites.site1 = "www.google.com";

使用中括号([])来修改 JSON 对象的值:

myObj.sites["site1"] = "www.google.com";

3.5 删除对象属性

使用 delete 关键字来删除 JSON 对象的属性:

delete myObj.sites.site1;

使用中括号([])来删除 JSON 对象的属性:

delete myObj.sites["site1"]

3.6 json 对象和 json 字符串的区别:

json 对象

var str2 = { "name": "asan", "sex": "man" };

json字符串

var str1 = ‘{ "name": "deyuyi", "sex": "man" }‘;

 

原文地址:https://www.cnblogs.com/huststl/p/8276099.html

时间: 2024-11-05 23:35:14

json学习笔记(一)的相关文章

ajax json 学习笔记

json = { } JSON 字符串必须使用双引号,单引号会出现错误 三种类型: 简单值:字符串.数值.布尔值.null 对象:无序的键值对儿 数组:有序的值列表 解析:JSON.eval()   //最早期   会执行恶意代码 不建议使用  JSON.stringify();  // 转化成 json 对象  JSON.parse();   // 转化成JS对象 object 解析 JSON  需要大写 //js对象 var book = { title:"javascript",

JSON学习笔记(总结自w3school)

1. JSON是一种文本. 2. JSON即JavaScript Object Notation(JavaScript对象表示法). JSON用来存储和交换文本信息. JSON比xml更小, 更快, 更容易解析. 3. JSON文本格式在语法上与创建JS对象相同, 由于这个原因, JS能够无需JSON解析器, 使用内建的eval()函数, 用JSON生成JS对象. 4. JSON语法: JSON名/值对必须写在大括号里面. JSON值可以是: 数字(整数或浮点数) 字符串(在双引号中) 逻辑值(

Json学习笔记

JSON模块为序列化和反序列化模块,通过JSON,可以将列表.无序字典转换成字符串形式,从而实现序列化.同时可以将字符串反序列化成列表.字典.这两种转换分别对应的是json.dumps(),和json.loads().有一点值得注意的是,python以外的其他语言,基本上都是将双引号中的内容作为字符串看待,只有python不区分单引号与双引号,因此为了实现跨平台(语言平台),使用数据,我们在使用Python的JSON模块时,一定要记得使用双引号.如果是使用的json.dump(),则是实现了两步

Ajax+JSON学习笔记(二)

来源:http://www.imooc.com/learn/250 readyState属性 0:请求未初始化,open还没有调用 1:服务器连接已建立,open已经调用了 2:请求已接受,也就是接收到头信息了 3:请求处理中,也就是接收到响应主体了 4:请求已完成,且响应已就绪,也就是响应完成了 通过监听readyState属性的变化,就可以判断服务器的响应成功与否 var request = new XMLHttpRequest(); request.open("GET",&quo

json学习笔记--在JavaScript中的使用

1.字符串转换为JavaScript对象 var txt = '{ "employees" : [' + '{ "firstName":"John" , "lastName":"Doe" },' + '{ "firstName":"Anna" , "lastName":"Smith" },' + '{ "firstNa

JSON学习笔记一 —— 一些与移动端交互产生JSON数据的方法

/**     * 测试的返回JSon方法,正式的不会用     * @author MrHandler     * @param reqCode     * @param joinStr     * @return     */    public static String getBasicJsonStrTest(int reqCode,String joinStr){        StringBuffer jsonStr = new StringBuffer();        json

json 学习笔记

定义:json 是JavaScript对象表示法. 格式: var jsonObject ={ "url":"www.baidu.com", "name":"zkr", "address":"shanghai" } 多次嵌套json: var jsonObject={  "ch":    [     {"names":"怡美家园"

CoAP学习笔记——nodeJS node-coap返回JSON数据包

0 前言 本文说明如何使用node-coap返回JSON数据包.CoAP是专门为物联网系统开发的面向网络的应用层协议栈,CoAP建立在UDP协议之上尽可能减少网络开销,又具有HTTP Restful类型的特性.node-coap使用nodejs实现了coap的客户端和服务器端. [测试环境]--ubuntu/Linux [相关博文] [CoAP协议文档--The Constrained Application Protocol (CoAP)] [CoAP协议学习--CoAP基础] [CoAP学习

Json.Net学习笔记

http://www.cnblogs.com/xiaojinhe2/archive/2011/10/28/2227789.html Newtonsoft.Json(Json.Net)学习笔记 http://www.cnblogs.com/freshman0216/p/4161800.html http://www.cnblogs.com/xwgli/archive/2013/08/30/3290964.html