简介

1、JSON 指的是 JavaScript 对象表示法(JavaScript Object Notation) JSON
2、是轻量级的文本数据交换格式。 JSON是 JavaScript 原生格式,这意味着在 JavaScript 中处理JSON数据,不须要任何特殊的 API 或工具包。
3、JSON 独立于语言:JSON 虽然使用 JavaScript来描述数据对象,但JSON 仍然独立于JS。
4、JSON 解析器和 JSON 库支持许多不同的编程语言。目前非常多的动态(PHP,JSP,.NET)编程语言都支持JSON。
5、对于 AJAX 应用程序来说,JSON 比 XML 更快更易使用

一、JSON的两种数据结构 及操作

JSON 有两种数据结构:对象、数组。
JSON 语法是 JavaScript 语法的子集,所以操作同JS一样。
1、对象

//简单形式:
var o={"name":"bty","age":11,"time":"2009-08-20"};
//复杂形式:
var o2 = {"list":[{"password":"666","name":"bty"},{"password":"422","name":"zsn"}],"array":[{"password":"123","name":"bty"},{"password":"452","name":"zsn"}]
};

注:{开始,}结束。名称/值用 逗号 隔开。
名称用 双引号括 起来;值如果是字符串则必须用 双引号括号,数值型则不须要。

2、数组

 //简单形式:var jsonArr2 = ["Google", "Runoob", "Taobao"]//复杂形式:var jsonArr2 = [ {"name":"bty","age":11,"time":"2009-08-20"},{"name":"zsn","age":10,"time":"2008-08-20"}  ];

注:数组是值(value)的有序集合。以“[”开始,“]”结束。值之间运用 “,”(逗号)分隔。

3、操作
以上面例子为例。
(1) 修改值: 同JS一样

o2.list[0].name = "sam";    //修改对象属性的值
jsonArr2[0].name = "sam";   //修改数组元素的值

(2)删除值: 同JS一样

 delete o2.list;           //删除对象属性delete jsonArr2[0];       //删除数组元素delete jsonArr2[0].name;  //删除数组元素属性

二、JSON的关键

在数据传输流程中,json是以文本(即字符串)的形式传递的,而JS操作的是JSON对象,所以JSON对象和JSON字符串之间的相互转换是关键。

区分JSON字符串和JSON对象:

 //JSON字符串:var str1 = '{ "name": "bty", "sex": "man" }';//JSON对象:  var str2 = { "name": "zsh", "sex": "man" };

三、JSON字符串与对象的转换

1、JSON字符串 转换 为JSON对象
以上面str1为例
转换有三种形式

//1)
var obj = eval('(' + str1 + ')');
//2)
var obj = str1.parseJSON();
//3)
var obj = JSON.parse(str1); 

然后,就可以这样读取转换后的数据:

alert(obj.name);
alert(obj.sex);

注:JSON.parse()和eval()方法的区别:JSON.parse()不仅可以解析json格式的数据,而且还会对要解析的字符串进行格式检查,如果格式不正确则不进行解析,而eval()则可以解析任何字符串,eval是不安全的。

eval(string):函数可计算某个字符串,并执行其中的的 JavaScript 代码。
eval()详解:点击这里

2、JSON对象 转化 为JSON字符串

//1)
var last=obj.toJSONString();
//2)
var last=JSON.stringify(obj);alert(last);

四、实例

var str='[  {"name":"bty","sex":"man"},{"name":"ZSN","sex":"girl"}
]';  //字符串
var obj = str.parseJSON();//JSON字符串转JSON对象
alert(obj[0].name); //bty

日常项目JSON运用的难点 并不是通过网络请求接受到JSON数据,而是如何把接受到的JSON数据进行处理(转换数据结构等)。
网络请求分配给客户端的JSON数据一般都是 JSON字符串,把JSON字符串转换为可操作的 JSON对象很容易(调用JSON.parse()或parseJSON()方法即可),但是往往转换后的 JSON对象的数据格式或结构 并不符合 项目中API的要求,所以我们还要将该JSON对象的数据结构转换为项目中 可用的数据结构,这才是难点。

最后附几个常用的JSON工具链接
JSON在线解析
JSON压缩转义

js读取解析JSON数据相关推荐

  1. js读取解析JSON数据(转)

    JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式,采用完全独立于语言的文本格式,是理想的数据交换格式.同时,JSON是 JavaScript 原生格式,这意 ...

  2. js读取解析JSON类型数据【申明:来源于网络】

    js读取解析JSON类型数据[申明:来源于网络] 地址:http://blog.csdn.net/sunhuaqiang1/article/details/47026841 转载于:https://w ...

  3. js怎么解析json数据

    js解析json数据,可以使用JSON.parse()方法来实现解析.JSON.parse()方法可以解析JSON字符串,转换为 JavaScript 对象 打造全网web前端全栈资料库(总目录)看完 ...

  4. js读取解析JSON类型数据

    2019独角兽企业重金招聘Python工程师标准>>> 一.什么是JSON? JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式,采用完全独 ...

  5. canvas绘制心电图(js读取csv心电数据文件)

    一.目的 浏览器网页中绘制心电图并展示: js读取解析心电数据文件: 此文涉及到js从文件中读取心电数据环节(为什么一定是js读文件呢?因为心电图的绘制用到了HTML5中的canvas属性,而canv ...

  6. php 读取 js json格式数据,js读取和解析JSON数据的方法

    JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式,采用完全独立于语言的文本格式,是理想的数据交换格式.同时,JSON是 JavaScript 原生格式,这意 ...

  7. JS解析json数据并将json字符串转化为数组的实现方法

    json数据在ajax实现异步交互时起到了很重要的作用,他可以返回请求的数据,然后利用客户端的js进行解析,这一点体现出js的强大,本文介绍JS解析json数据并将json字符串转化为数组的实现方法, ...

  8. JS解析json数据(json字符串和数组之间相互转换)

    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"> <HTML> <HEAD ...

  9. Web中JS(Javascript)解析JSON数据的方法

    js解析json数据,可以使用JSON.parse()方法来实现解析.JSON.parse()方法可以解析JSON字符串,转换为 JavaScript 对象 下面我们就结合简单的代码示例,给大家介绍j ...

最新文章

  1. 如何用 Python 将 Excel 表格转成可视化图形?| 原力计划
  2. SQL语句,统计一段时间内有多少个工作日
  3. JZOJ 4421. aplusb
  4. MATLAB数字图像处理详细总结
  5. 软件性能测试pdf,软件性能测试报告模板.pdf
  6. MySQL学习笔记(6)
  7. 关于SSL认证的小坑 SSLPeerUnverifiedException
  8. 【Codeforces思维题】20220728
  9. 苹果7支持快充吗_苹果支持20W快充了,什么20W还叫快充,国内都到120W了
  10. 免授权采集海天注塑机采集伊之密注塑机监控住友注塑机参数采集
  11. layui 设置table单元格背景色
  12. 解决CentOS安装VM Tools出现在客户机中装载CD驱动器启动终端,使用tar解压缩安装程序,然后执行vmware-insall.pl安装VMware Tools的问题。
  13. filebeat收集日志到elsticsearch中并使用ingest node的pipeline处理
  14. LInux 下 Anaconda多环境切换
  15. D435i安装驱动时遇到的configuring Secure Boot问题
  16. 测试jre 和jdk是否安装好
  17. SQLServer常用快捷键汇总
  18. 贷前审批策略的6个搭建思路
  19. SAP UI5 数据类型(data type) 学习笔记
  20. 软件测试工程师求职的时候怎么自我介绍?

热门文章

  1. java数字音频最强教程之音频的王者之路(音频发烧友篇)
  2. 《算法竞赛进阶指南》刷题记录
  3. 使用EPW计算孤立ME方程
  4. Bootstrap 之Table样式
  5. 江波龙入选国家级专精特新“小巨人”企业
  6. Android之Manifest文件
  7. 环信开发的坑(环信客户互动云)
  8. 多模态 跨模态|人机交互新突破!
  9. springboot基于web的传染病信息管理系统的设计与实现毕业设计-附源码221124
  10. 【大数据技术】实验4:熟悉Spark基础编程