JSON语法规则:

    数据在名称/值对中;

    数据由逗号分隔;

    大括号保存对象;

    中括号保存数组

1、访问对象值:


  1. var myObj,x;
  2. myObj = {"name":"runoob","alexa":10000,"site":null};
  3. x = myObj.name; //使用点号(.)来访问对象的值
  4. x = myObj["name"]; //使用中括号([])来访问对象的值

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


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

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


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

4、修改 JSON 对象的值:

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

5、删除 JSON 对象的属性:

delete myObj.sites.site1;

5、使用索引值来访问数组:


  1. <script>
  2. var myObj, x;
  3. myObj = {"name":"网站","num":3, "sites":[ "Google", "Runoob", "Taobao" ] }
  4. x = myObj.sites[0];
  5. document.getElementById("demo").innerHTML = x;
  6. </script>

6、使用for-in 来访问数组:


  1. <script>
  2. var myObj, i, x = "";
  3. myObj = {
  4. "name":"网站",
  5. "num":3,
  6. "sites":[ "Google", "Runoob", "Taobao" ]
  7. };
  8. for (i in myObj.sites) {
  9. x += myObj.sites[i] + "<br>";
  10. }
  11. document.getElementById("demo").innerHTML = x;
  12. </script>

******************************************************************************************************************************************

1、JSON 通常用于与服务端交换数据。在接收服务器数据时一般是字符串。我们可以使用 JSON.parse() 方法将数据转换为 JavaScript 对象

语法: JSON.parse(text,reviver)

text:必需, 一个有效的 JSON 字符串。

reviver: 可选,一个转换结果的函数, 将为对象的每个成员调用此函数。

var obj  = JSON.parse('{ "name":"runoob", "alexa":10000, "site":"www.runoob.com" }');

解析完成后,我们就可以在网页上使用 JSON 数据了:


  1. <p id="demo"></p>
  2. <script>
  3. var obj = JSON.parse('{ "name":"runoob", "alexa":10000, "site":"www.runoob.com" }');
  4. document.getElementById("demo").innerHTML = obj.name + ":" + obj.site;
  5. </script>

2、使用AJAX 从服务器请求 JSON 数据,并解析为 JavaScript 对象:


  1. var xmlhttp = new XMLHttpRequest();
  2. xmlhttp.onreadystatechange = function(){
  3. if(this.readyState == 4 && this.status == 200){
  4. myObj = JSON.parse(this.responseText);
  5. document.getElementById("demo").innerHTML = myObj.name;
  6. }};
  7. xmlhttp.open("GET","/try/ajax/json_demo.txt",true);
  8. xmlhttp.send();

3、 JSON.stringify()方法:

    JSON 通常用于与服务端交换数据。在向服务器发送数据时一般是字符串。我们可以使用 JSON.stringify() 方法将 JavaScript 对象转换为字符串。

语法: JSON.stringify(value,replacer,space)

value:必需, 一个有效的 JSON 字符串。

replacer:可选。用于转换结果的函数或数组。

如果 replacer 为函数,则 JSON.stringify 将调用该函数,并传入每个成员的键和值。使用返回值而不是原始值。如果此函数返回 undefined,则排除成员。根对象的键是一个空字符串:""。

如果 replacer 是一个数组,则仅转换该数组中具有键值的成员。成员的转换顺序与键在数组中的顺序一样。当 value 参数也为数组时,将忽略 replacer 数组。

space:可选,文本添加缩进、空格和换行符,如果 space 是一个数字,则返回值文本在每个级别缩进指定数目的空格,如果 space 大于 10,则文本缩进 10 个空格。space 有可以使用非数字,如:\t。


  1. var obj = {"name":"runoob","alexa":10000,"site":"www.runoob.com"};
  2. var myJSON = JSON.stringify(obj);
  3. document.getElementById("demo").innerHTML = myJSON;

JavaScript 函数 eval() 可用于将 JSON 文本转换为 JavaScript 对象:


  1. var txt = '{ "sites" : [' +'{"name":"菜鸟教程" , "url":"www.runoob.com" },' +'{ "name":"google" , "url":"www.google.com" },'+'{ "name":"微博" , "url":"www.weibo.com" } ]}';
  2. var obj = eval("("+ txt + ")");
  3. document.getElementById("name").innerHTML=obj.sites[0].name
  4. document.getElementById("url").innerHTML=obj.sites[0].url

JSON 表达式的更多相关文章

  1. s表达式和json表达式

    s表达式 + 1 2 3普通表达式 1+2+3json表达式{ +:[1, 2, 3]}优点,一个运算符,无限个参数 s表达式 * (+ 1 2) 3普通表达式 1+(2*3)json表达式{ *:[ ...

  2. QT解析嵌套JSON表达式

    QT5开发环境集成了解析JSON表达式的库.使用很方便. 友情提示一下,好像在QT4环境里.须要到官网下载相关的库文件才干使用解析功能.话不多说,上代码 1.在pro文件里增加 QT += scrip ...

  3. Jmeter之Json表达式关联

    Jmeter使用中,通常用的最多的是正则表达式和Xpath表达式,但是现在大多数网站都用的Json返回数据,而且数据还特长的那种,作为合格的测试人员也要适应技术潮流发展,下面介绍利用Json Extr ...

  4. Jmeter 提取http请求返回值里json数据参数化方法

    第三方插件下载地址:http://jmeter-plugins.org/downloads/all/ 插件下载后解压:找到JMeterPlugins-Extras.jar,把JMeterPlugins ...

  5. 【JEMTER】后置处理器JSON Path Extractor获取server端返回的json中某项值

    需求1:点击所有报表模板时,server端返回所有报表模板的ID(templateId),测试时需要下载某个模板生成的报表 需求2:点击单个报表模板时,server端返回这个报表模板下的所有报表ID( ...

  6. mysql 5.7 laravel json类型数据相关操作

    2018年10月16日18:14:21 官方文档中文翻译版 原文:https://dev.mysql.com/doc/refman/5.7/en/json.html 最后有部分实例和一个小总结 11. ...

  7. JSON Extractor

    JMeter处理responses 的json 对于请求1返回的结果,处理以后作为请求2的参数,JMeter提供了JSON 提取器 比如 responses 返回: {"statusCode ...

  8. [笔记] Python 中JSON数据的读写

    前言 JSON(JavaScript Object Notation,JavaScript对象表示法)是一种轻量级的数据交换语言 JSON是独立于语言的文本格式, JSON 数据格式与语言无关 JSO ...

  9. python初步学习-python 模块之 json

    json 模块 JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,易于人阅读和编写.一般API返回的数据大多是 JSON.XML,如果返回JSON的话,将获取 ...

随机推荐

  1. TypeScript深入学习

    基础类型booleannumberstringstring[]//Array<string> 数组类型(ReadonlyArray<string>数组不能修改,也不允许被赋值给 ...

  2. 【例题 8-10 UVA - 714】 Copying Books

    [链接] 我是链接,点我呀:) [题意] 在这里输入题意 [题解] 二分最后的最大值的最小值. 得到ans 然后从后往前尽量划分. 如果发现不够分成k个. 那么就从第一个开始接着分restk个(每隔1 ...

  3. 【2017"百度之星"程序设计大赛 - 复赛】Arithmetic of Bomb

    [链接]http://bestcoder.hdu.edu.cn/contests/contest_showproblem.php?cid=777&pid=1001 [题意] 在这里写 [题解] ...

  4. IntelliJ IDEA 2018 Community(社区版)创建J2EE项目+Tomcat9部署

    博主打算开始系统地自学JAVA,首要问题就是解决IDE的问题, 以前用过像VS.Android Studio.Eclipse,知道Eclipse是JAVA最传统的IDE, 用过VS和AS的朋友都知道, ...

  5. Spring RootBeanDefinition,ChildBeanDefinition,GenericBeanDefinition

    转自:https://blog.csdn.net/joenqc/article/details/68942972 RootBeanDefinition,ChildBeanDefinition,Gene ...

  6. metabase实施文档

    安装提前:需要安装JDK1.8以上 软件下载地址: https://metabase.com 还需要下载 ojdbc7.jar,以支持Oracle驱动 下载地址:http://www.oracle.c ...

  7. ospp.vbs是什么文件?激活过程cscript ospp.vbs命令详解

    ospp.vbs是什么文件?激活过程cscript ospp.vbs命令详解 在Office 2013激活过程中我们经常会用到cscript ospp.vbs这个命令.那么,很有必要来了解一下,osp ...

  8. [D3] Add hovercard

    The way to add hovercard is Append a div with class 'hovercard' in the tick function, positioning th ...

  9. PS中矢量形状图层的合并交叉等运算

    操作中将用到下图所示的几个按钮   图1.2 减去顶层形状图层为例 1. 上图中,选择矩形工具,以新建图层的形式,新建两个矩形的形状图层,如上右图. PS:可以Shift+A快捷键选中一个形状,然后填 ...

  10. 四种卸载Mac软件的方法

    从 Mac 电脑上卸载已经安装的应用程序可能是你知道的操作系统里面最简单的一种了.而如果你是一名新买了 Mac 电脑的用户,那么你可能比较困惑:怎么没有控制面板中的相应板块来卸载它们呢?但是其实你想不 ...