`
AndyEverLie
  • 浏览: 5427 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

JSON 101

    博客分类:
  • web
阅读更多

JSON(JavaScript Object Notation)是一种轻量级的、独立于程序语言的文本数据交互格式.

先动手写一个例子:如图所示,当点击load data按钮,页面通过AJAX将以下JSON数据展示出来。


json_resp.php

 

{
"list":[
{"name":"JSON"},
{"name":"XML"},
{"name":"YAML"}
]
}
 

json_demo.php

 

<html>
<head>
<title>JSON Demo</title>
<script type="text/javascript">
function loadData() {
  var xmlhttp;
  if (window.XMLHttpRequest) {
    // code for IE7+, Firefox, Chrome, Opera, Safari
    xmlhttp=new XMLHttpRequest();
  } else {
    // code for IE6, IE5
    xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
  }

  xmlhttp.onreadystatechange=function() {
    if (xmlhttp.readyState==4 && xmlhttp.status==200) {
      var html = '';
      var json = eval('(' + xmlhttp.responseText + ')').list;
      for(var i=0; i<json.length; i++) {
        html = html + json[i].name + '<br>';
      }
      document.getElementById("datas").innerHTML = html;
    }
  }
  xmlhttp.open("GET","json_resp.php",true);
  xmlhttp.setRequestHeader("Content-type","application/json");
  xmlhttp.send(null);
}
</script>
</head>
<body>
<h1>JSON Demo</h1>
<input type="button" name="load" value="load datas" onclick="loadData();" />
<br /><br />
<h3>data list below!</h3>
<div id="datas">
null
</div>
</body>
</html>
 

 

解析JSON就只有几行代码,只用是Javascript内建的eval()函数,然后便是数组操作,是不是比XML方便多了呢!

 

下面结合例子中JSON数据来说明JSON的结构。

 

JSON中,冒号:为名称分隔符,逗号,为值分隔符。数据由对象{},数组[],字符"",数值xx.xx,false,null,true组成。

例子中, 有一个大的对象,名称是"list",它的值是一个数组,即{"list":[]}。

list值的数组中包含三个对象,即[{},{},{}],中间用逗号分隔开。

里面每个对象中又包含一个键值对,如"name":"JSON",键的名称"name"和值"JSON"中间用冒号分开。

值的类型可以是字符,比如"name":"JSON";

可以是数值(整型和浮点型),比如 [{"value":250}, {"value":3.14159}]

可以是false, null或者true,比如[{"value":false}, {"value":null}, {"value":true}]

 

至此,JSON的基本語法解释完成。

 

参考:

http://www.json.org/json-zh.html

http://www.ietf.org/rfc/rfc4627.txt

http://www.w3schools.com/json/default.asp

 

转载请注明出处:http://laiyonghua.cn/json-101/

  • 大小: 24.1 KB
分享到:
评论

相关推荐

    Linux JSON 常用解析命令总结

    ### Linux JSON 常用解析命令总结 #### 概述 JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,易于人阅读和编写,同时也易于机器解析和生成。由于其简洁性和高效性,JSON成为了现代Web应用中最...

    assets下使用gson进行json文件读取

    "id": "101", "name": "北京市市辖区", "district": [ ... ] }, ... ] }, ... ] } ``` 要解析这个JSON数据,我们可以创建对应的Java类(例如`Province`、`City`和`District`),然后调用`JsonUtils.jsonTo...

    全国城市三级联动json数据

    "id": "101", "name": "北京市市辖区", "district": [ { "id": "10101", "name": "东城区" }, ... ] }, ... ] }, ... ] } ``` 在这个结构中,最外层是一个包含所有省份的对象,每个省份是一个JSON...

    Json省市区.zip

    "id": "101", "name": "北京市市辖区", "districts": [ {"id": "10101", "name": "东城区"}, {"id": "10102", "name": "西城区"}, // 其他区县... ] }, // 其他城市... ] }, // 其他省份... } ``` 在这...

    JSON封装数据与取值

    String jsonString = "[{\"clicksCounts\":\"10\",\"wordContent\":\"С\"},{\"clicksCounts\":\"101\",\"wordContent\":\"С1\"},{\"clicksCounts\":\"102\",\"wordContent\":\"С2\"}]"; JSONArray jsonArray = ...

    全国省份、城市JSON

    "id": "101", "name": "北京市市辖区" }, { "id": "102", "name": "北京市县" } ] }, // 其他省份... ] } ``` 在这个例子中,“省份”是一个对象,包含了多个省份信息,每个省份是一个包含“id”和...

    Newtonsoft.Json.dll 2.0

    Newtonsoft.Json.dll仅支持.Net Framework 2.0 用于json字符串解析。 Newtonsoft.Json.dll仅支持.Net Framework 2.0

    json-lib-2.4-jdk15

    JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,易于人阅读和编写,同时也易于机器解析和生成。它基于JavaScript的一个子集,但被设计为独立于语言,且广泛用于Web服务之间的数据交换。JSON库如`...

    中国省市区三级联的JSON格式

    在Web开发中,为了实现省市区三级联动的选择效果,通常会使用特定的JSON格式来存储这种地理信息。这里提到的"中国省市区三级联的JSON格式"就是这样一个例子,它被设计用于创建下拉列表,方便用户在网页上选择他们的...

    element-plus---Cascader三级联动地区选择---json数据

    "id": "101", "name": "东城区", "children": [ { "id": "10101", "name": "朝阳门街道" }, // ... ] }, // ... ] }, // ... ] ``` 在这个例子中,`"id"`是每个区域的唯一标识,`"name"`是区域的名称...

    国内幼儿园、中小学院校json数据

    [{"name":"北京市第十一中学(东校区)","type":"中学","province_name":"北京市","city_name":"北京市","district_name":"东城区","ad_code":"110101","address":"北京市东城区东晓市街101号","geo_location":{...

    JavaScript数组对象JSON学习笔记

    var array41 = array.concat(101, 102, 103); var array42 = array.concat([104, 105]); var array43 = array.concat(array4); ``` 2. **连接字符串 `join`:** - 将数组的所有元素连接成一个字符串: ```...

    Newtonsoft.Json.dll 3.5

    Newtonsoft.Json.dll仅支持.Net Framework 3.5 用于json字符串解析。 Newtonsoft.Json.dll仅支持.Net Framework 3.5

    Android解析省市区JSON

    "id": "101", "name": "东城区" }, { "id": "102", "name": "西城区" } ] }, { "id": "2", "name": "上海市", "city": [ { "id": "201", "name": "黄浦区" }, { "id": "202", "name": "徐汇区" ...

    markdown-json:Markdown到JSON具有Yaml支持,并将您的Markdown文件转换为JSON,因此您可以将它们用作静态api

    markdown-json Markdown到json具有yaml支持,并将您的markdown文件转换为json,因此您可以将它们用作静态api。 安装 npm install markdown-json 命令行用法: markdown-json [OPTIONS] [ARGS] Options: -c, --...

    Json 省市区

    JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,被广泛用于Web应用程序之间传递数据。在"Json 省市区"这个主题中,我们主要关注的是如何使用JSON来表示中国的省、市、区(县)的数据结构。这种数据...

    stopwords-json:JSON格式的50种语言停用词

    stopwords-json JSON格式的各种语言的停用词。 根据: 停用词是被之前过滤掉,或之后,处理自然语言...101 da.json 荷兰语 275 nl.json 英语 570 en.json 世界语 173 eo.json 爱沙尼亚语 35 等 芬兰 772 fi

    json格式省市二级联动xml文件

    &lt;city id="101"&gt;北京市 天津市 ... 上海市 重庆市 ... &lt;!-- 其他省份 --&gt; ``` 每个`&lt;province&gt;`元素代表一个省份,有其ID属性,而每个`&lt;city&gt;`元素代表该省份下的一个城市,也有自己的ID。这样的结构...

    json.hpack:Nodejs的https实现

    json.hpack ## Nodejs 安装 $ npm install json-hpack 或在package.json中指定为依赖项 用法 与快递 // Add Prototype to JSON, So no need to use variable require ( 'json-hpack' ) // or json_hpack = require...

Global site tag (gtag.js) - Google Analytics