文档章节

JS中对象与字符串的互相转换

itwriter
 itwriter
发布于 2014/11/03 11:23
字数 449
阅读 15
收藏 0

在使用 JSON2.JS 文件的 JSON.parse(data) 方法时候,碰到了问题:

throw new SyntaxError('JSON.parse');

查询资料,大概意思如下:

JSON.parse方法在遇到不可解析的字符串时,会抛出SyntaxError异常。

即:JSON.parse(text, reviver),This method parses a JSON text to produce an object or array. t can throw a SyntaxError exception.

所以,在这里在此总结一下 JS 中对象与字符串的互相转换,因为这涉及到浏览器兼容问题。

1:jQuery插件支持的转换方式 
代码如下: 
$.parseJSON( jsonstr ); //jQuery.parseJSON(jsonstr),可以将json字符串转换成json对象

反过来,使用 serialize 系列方法:如:var fields = $("select, :radio").serializeArray();


2:浏览器支持的转换方式(Firefox,chrome,opera,safari,ie9,ie8)等浏览器 
代码如下: 
JSON.parse(jsonstr); //可以将json字符串转换成json对象 
JSON.stringify(jsonobj); //可以将json对象转换成json对符串

注:ie8(兼容模式),ie7和ie6没有JSON对象,需要引入 json.js 或 json2.js。

 

3:Javascript支持的转换方式 
eval('(' + jsonstr + ')'); //可以将json字符串转换成json对象,注意需要在json字符外包裹一对小括号 
注:ie8(兼容模式),ie7和ie6也可以使用eval()将字符串转为JSON对象,但不推荐这些方式,这种方式不安全eval会执行json串中的表达式。

 

4:JSON官方的转换方式 
http://www.json.org/,提供了一个json.js,这样ie8(兼容模式),ie7和ie6就可以支持JSON对象以及其stringify()和parse()方法;

Creative Commons License本文基于 Creative Commons Attribution 2.5 China Mainland License发布,欢迎转载,演绎或用于商业目的,但是必须保留本文的署名 http://www.cnblogs.com/luminji(包含链接)。如您有任何疑问或者授权方面的协商,请给我留言。


本文转载自:http://www.cnblogs.com/luminji/p/3617160.html

itwriter
粉丝 12
博文 117
码字总数 23872
作品 0
海淀
程序员
私信 提问
数据提取之JSON与JsonPATH

JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式,它使得人们很容易的进行阅读和编写。同时也方便了机器进行解析和生成。适用于进行数据交互的场景,比如网站前台与后台之间的...

张元江_erel
2018/11/28
0
0
JavaScript开发过程中遇到的各种个问题、bug、坑

要区分js对象与json字符串 json实际就是js对象的文本表示形式(字符串) ajax提交数据时,data中需要写的是js对象,而不是json。 使用JSON.stringify()得到的就是json(字符串),而不是js对...

城市之雾
2018/07/05
0
0
前端进阶系列(第2期):深入理解JavaScript数据类型转换

上一期中我们主要是了解了JavaScript中存在两大数据类型:和以及其存储的方式(堆和栈)。 本期我们将重点谈谈JavaScript数据类型转换过程出现的各种“奇葩”的问题。 写在前面 在JavaScrip...

布一
01/29
0
0
细说JavaScript数据类型及转换

细说JavaScript数据类型及转换 JavaScript数据类型 1.Boolean(布尔) 布尔:(值类型)var b1=true;//布尔类型 2.Number(数字) 数值:(值类型)var n1=3.1415926;//数值类型 n1.toFixed...

开元中国2015
2015/07/13
0
0
玩转 JavaScript 之数据类型

概述 众所周知,JavaScript 是一门弱类型语言,不对变量进行类型强制,变量可以随时持有任何类型的值,所以在 JavaScript 中,类型对于我们开发人员来说可以理解为值的内部特征,类型定义了值...

Seymoe
01/04
0
0

没有更多内容

加载失败,请刷新页面

加载更多

存储过程无参数,in,out ,in out 的用法

select * from scott.emp where empno=7839 or empno=7566 select * from emp5 create table emp5 as select * from scott.emp -----------------in create or replace procedure raisesalar......

颜丽
今天
2
0
SOFAJRaft-RheaKV 是如何使用 Raft 的 | SOFAJRaft 实现原理

SOFAStack Scalable Open Financial Architecture Stack 是蚂蚁金服自主研发的金融级分布式架构,包含了构建金融级云原生架构所需的各个组件,是在金融场景里锤炼出来的最佳实践。 本文为《剖...

SOFAStack
今天
2
0
同一父类,不同子类集合可判断该元素组是否相等

判断集合是否相等时只关注元素是否相等,无需考虑类型,即同调父类AbstractList里的equal方法 源码如下: public boolean equals(Object o) { if (o == this) return true; if (!(o instance...

恋码之子
今天
2
0
PTH建设模块划分

todo

春哥大魔王的博客
今天
2
0
spring循环依赖

循环依赖解决 constructor(此种无法解决) (看完sertter之后再来看这部分吧)我想看过下部分setter解决循环依赖的实现之后,肯定有想法为啥constructor无法实现,我们同样可以提前曝光一个S...

lazy~
今天
2
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部