资讯专栏INFORMATION COLUMN

js字符串转化成json对象,使用JSON.parse()需要注意的地方

张红新 / 2339人阅读

摘要:单引号与双引号我们看到一开始的举例中小明使用单引号来套双引号,如果反过来写呢,如小明相信也不少人习惯用双引号套单引号结果使用来转化也会报错兼容问题浏览器中不支持使用方法转成对象,所以需要引入一个文件。

相信大部分人都知道或者去百度检索都会得到将js中的字符串转化成json对象常见的3种方法

举例:

var str = "{"name":"小明","age":18}";

将字符串转化json对象:

var json = JSON.parse(str);

var json = eval("(" + str + ")");

var json = (new Function("return " + str))();

通过console.log()将json打印到控制台,不管是使用以上3种哪一种方法,都能在chrome控制台看到成功转化的结果:

使用JSON.parse()方法来转化json对象,需要注意的坑点是什么?

1.字符串的数据格式

以上举例 str = "{"name":"小明","age":18}"; 属性name和age都用双引号引住,
有的人可能会习惯写成对象形式的字符串,如:str = "{name:"小明",age:18}";
结果使用JSON.parse()来转化会报错,因为使用JSON.parse需严格遵守JSON规范。


2.单引号与双引号

我们看到一开始的举例中 var str = "{"name":"小明","age":18}"; 使用单引号来套双引号,如果反过来写呢,如:var str = "{"name":"小明", "age":18}";(相信也不少人习惯用双引号套单引号)

结果使用JSON.parse()来转化也会报错


3.兼容问题
IE6/7浏览器中不支持使用JSON.parse()方法转成json对象,所以需要引入一个json2.js文件。可以在这个网站(https://github.com/douglascro...)去下载对象文件。

最后总结来说,如果使用JSON.parse()方法来转化成json对象的数据格式的话,需要注意的是被转化的字符串里面的属性要使用引号,并且总体是单引号套双引号的方式,以及IE6/7浏览器是不支持该方法。

当然,如果你使用eval()或者new Function()的方式来转化,那就完全可以忽略上述的这两点需要注意的地方~( ̄▽ ̄~)(~ ̄▽ ̄)~哈哈

附:

eval() 函数可将字符串转换为代码执行,并返回一个或多个值

eval调用时,实例为eval( "( javascript代码 )" )

var str = "function(){alert("a");}“;

str = eval("("+str+")");

str();

eval()的返回值

eval()的返回值遵循以下规则:

1.如果eval()的参数不是字符串,那么eval()将直接返回参数。

2.如果eval()的参数是字符串,那么eval()将这个字符串解析成代码后进行执行,并返回最后一行代码执行的结果。

3.如果字符串无法解析成合法的代码,eval()将抛出SyntaxError错误。

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/80757.html

相关文章

  • JSON:如果你愿意一层一层剥开我心,你会发现...这里水很深——深入理解JSON

    摘要:说句玩笑话,如果是基于的,可能就叫了,形式可能就是这样的了,如果这样,那么可能现在是和比较密切了。此外,还有一个函数,我们较少看到,但是它会影响。 我们先来看一个JS中常见的JS对象序列化成JSON字符串的问题,请问,以下JS对象通过JSON.stringify后的字符串是怎样的?先不要急着复制粘贴到控制台,先自己打开一个代码编辑器或者纸,写写看,写完再去仔细对比你的控制台输出,如果有...

    Baaaan 评论0 收藏0
  • JavaScript对象JSON

    摘要:,指的对象表示法,它本身是个字符串,是一种数据交换格式,并非对象。字符串必须使用双引号表示,不能使用单引号。数组或对象最后一个成员的后面,不能有逗号。不合法的会在解析成对象时,出现错误。替代方法对象下虽然提供了完整的字符串和对象的转换方法。 JSON(JavaScript Object Notation),指JavaScript的对象表示法,它本身是个字符串,是一种数据交换格式,并非对...

    wuyumin 评论0 收藏0
  • html5

    摘要:最典型的场景就是聊天室。主要特点就是服务器可以主动向客户端推送信息,客户端也可以主动向服务器发送信息,是真正的双向平等对话,属于服务器推送技术的一种。 语义化标签 input的新属性值 表单的验证 json的新方法 自定义属性 拖放 canvas 地理位置的获取 离线存储 本地存储 audio video 语义化标签 使用最多的id->当前的语义化标签页面整体...

    leiyi 评论0 收藏0
  • PHP与AJAX相爱相杀

    摘要:响应一般由三个部分组成由一个数字和文字组成的状态码,用来显示请求是成功还是失败响应头,包含服务器类型,日期时间,内容类型和长度等响应体,也就是响应正文。获得形式的相应数据。和以数字和文本形式返回状态码。 学习目录: AJAX基础 PHP与AJAX JSON格式 jQuery中的AJAX 个人网站原创链接地址:不足之处欢迎留言...逃... showImg(https://segm...

    wthee 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<