JSON 浅谈 — 3.0 解析

解析,是指将符合 JSON 语法规则的字符串转换成对象的过程。

不同的编程语言都提供了解析 JSON 字符串的方法,在这里主要讲解 JavaScript 中的解析方法。主要有三种:

  • 使用 eval()
  • 使用 JSON.parse()
  • 使用第三方库,例如 JQuery 等

1. eval()

eval() 函数的参数是一个字符串,其作用是直接执行其中的 JavaScript 代码。

eval() 能够解析 JSON 字符串。从这里也可以看得出,JSON 和 JavaScript 是高度嵌合的。

但是,现在已经很少直接使用 eval() 来解析了,如果您的浏览器版本真的是很旧,可能才需要这个方法。此外,eval() 是一个相对危险的函数,因为字符串中可能含有未知因素。在这里,作为学习,还是要知道这也是一种方法。

JavaScript

请注意 eval() 的参数,在字符串两旁加了括号,这是必须的,否则会报错。

因为 JSON 字符串是被大括号(“{}”)包围的,直接放到 eval() 会被当成语句块来执行,因此要在两旁加上括号,使其变成表达式。

JavaScript

2. JSON.parse()

现在绝大多数浏览器都以支持 JSON.parse(),是推荐使用的方式。

JavaScript

如果输入了不符合规范的字符串,会报错。

JavaScript

JSON.parse() 可以有第二个参数,是一个函数。此函数有两个参数:name 和 value,分别代表名称和值。当传入一个 JSON 字符串后,JSON 的每一组名称/值对都要调用此函数。该函数有返回值,返回值将赋值给当前的名称(name)。

JavaScript

第一、二行输出分别是 str 的两个名称/值对。第三行输出是 JSON 最外层的对象本身:没有名称,只有值,值是一个对象。

利用第二个参数,可以在解析 JSON 字符串的同时对数据进行一些处理。

JavaScript

原文:http://www.ourd3js.com/wordpress/?p=1892

《前端观察》专注于网站前端设计与前端开发、纯粹的前端技术分享。更多前端文章请订阅本头条号,也可以关注微信订阅号qianduanguancha(长按可复制)

时间: 2024-10-07 07:36:32

JSON 浅谈 — 3.0 解析的相关文章

JSON浅谈-4.0序列化

序列化,就是指将JavaScript值转化为JSON字符串的过程. 此时就需要用到一个函数:JSON.stringify() JSON.stringify()能够将JavaScript值转换成JSON字符串.JSON.stringify()生成的字符串可以用JSON.parse()再还原成JavaScript值. 1. 参数的含义 value:必选参数.被变换的 JavaScript 值,一般是对象或数组. replacer:可以省略.有两种选择:函数或数组. 如果是函数,则每一组名称/值对都会

浅谈C#手动解析Json格式内容

这个应该算处女贴吧 - - 之前百度了许久基本没有一个满意的json结构的解析类库 想了想还是自己做一个吧 现在我来说下大概的思路 首先我创建了一个 JsonTokener的类 用于处理json字符串的一些操作里面有个枚举 1 public enum JsonCharType 2 { 3 BeginObject = 123, //{ 4 EndObject = 125, //} 5 BeginArray = 91, //[ 6 EndArray = 93, //] 7 DoubleQuote =

浅谈用java解析xml文档(四)

继续接上一文,这一阵子因为公司项目加紧,导致最后一个解析xml文档的方式,还没有总结,下面总结使用dom4J解析xml. DOM4J(Document Object Model for Java) 使用dom4j解析,个人认为是四种解析方式里面最方便的一种,DOM4J是一个非常非常优秀的Java XML API,具有性能优异.功能强大和极端易用使用的特点,同时它也是一个开放源代码的软件.如今你可以看到越来越多的Java软件都在使用DOM4J来读写XML,特别值得一提的是连Sun的JAXM也在用D

浅谈用java解析xml文档(三)

接上一篇,本文介绍使用JDOM解析xml文档, 首先我们还是应该知道JDOM从何而来,是Breet Mclaughlin和Jason Hunter两大Java高手的创作成果,2000年初, JDOM作为一个开放源代码项目正式开始研发.JDOM是一种解析XML的Java工具包. JDOM基于树状结构,利用纯JAVA技术对XML文档实现解析.生成.序列化及其它操作. 我们从以下步骤开始解析: (1).通过JDOM的API创建一个SAXBuilder的对象 SAXBuilder saxBuilder

浅谈用java解析xml文档(二)

上一文中总结了dom解析xml文档的方式,本文开始总结使用SAX解析xml 的方式及它的优缺点! SAX(Simple API for XML),是指一种接口,或者一个软件包. 首先我们应该知道SAX解析和dom解析的区别: dom是树结构解析,易于理解和开发,它可以随意访问文件所在的节点位置,易于修改,删除和查询.但对于dom文档过大时,则会解析较慢. 而SAX解析是事件推动型,顺序读取文件的节点,且只能读取文档的内容,不能对文档的内容进行修噶,对文档的大小没有过多的限制,但开大复杂度较高,

浅谈用java解析xml文档(一)

关于xml本身的语法及使用的环境不多说了,网上有很多规则, 然对xml文档进行解析,一般分为四种解析方式,基于java官方文档的Dom 和Sax解析,还有就是基于 第三方jar包的 Jdom 和 Dom4j解析. 一.首先我们来看Dom解析: 1.定义工厂,使应用程序能够从 XML 文档获取生成 DOM 对象树的解析器. DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance(); 在应用程序获取对 DocumentBuil

浅谈关于JavaScript解析XML文件的注意事项

之前在重庆农商行的时候做项目,涉及到一个级联的功能,需要从XML中读取数据存到select框中. 开始的时候一直出错,首先是火狐浏览器报错.但是IE正常,后来是火狐浏览器不报错了但是不显示.而IE依然显示. 经过一番仔细的研究,总算解决了问题,下面我总结一下, 希望给更多的人带来帮助. 首先呢,是页面加载的时候要把数据从XML中读取并且存入select中的option . 以下是详细的代码 第一步:以下是我所定义的XML代码 名称为school.xml <?xml version="1.0

浅谈http1.0和http1.1(1.x)以及http-NG

http协议简介 http超文本传输协议(HTTP,HyperText Transfer Protocol)是互联网上应用最为广泛的一种网络协议.所有的WWW文件都必须遵守这个标准.设计HTTP最初的目的是为了提供一种发布和接收HTML页面的方法.1960年美国人Ted Nelson构思了一种通过计算机处理文本信息的方法,并称之为超文本(hypertext),这成为了HTTP超文本传输协议标准架构的发展根基.Ted Nelson组织协调万维网协会(World Wide Web Consortiu

浅谈webpack3.0+

(1)webpack作用 1.前端为什么需要webpack? 现在的前端网页功能丰富,特别是SPA(single page web application 单页应用)技术流行后,JavaScript的复杂度增加和需要一大堆依赖包,还需要解决SCSS,Less……新增样式的扩展写法的编译工作.所以现代化的前端已经完全依赖于WebPack的辅助了. 2.什么是webpack? 简单理解就是打包用的,结合图进行理解 1.将.js(脚本文件)..jade(源于Node.js 的HTML高性能模板引擎).