程序员必知:字符串转换成JSON的三种方式

简介: 程序员必知:字符串转换成JSON的三种方式

采用Ajax的项目开发过程中,经常需要将JSON格式的字符串返回到前端,前 端解析成JS对象(JSON )。

ECMA-262(E3) 中没有将JSON概念写到标准中,但在 ECMA-262(E5) 中JSON的概念被正式引入了,包括全局的JSON对象和Date的toJSON方法。

1,eval方式解析,恐怕这是最早的解析方式了。

?1234function strToJson(str){ var json = eval('(' + str + ')'); return json;}

记得str两旁的小括号哦。

2,new //代码效果参考:http://www.zidongmutanji.com/bxxx/434362.html

Function形式,比较怪异哦。

?1234function strToJson(str){ var json = (new Function("return " + str)//代码效果参考:http://www.zidongmutanji.com/zsjx/521143.html

)(); return json;}

IE6/7中当字符串中含有换行(\n)时,new Function不能解析,但eval却可以。

3,使用全局的JSON对象。

?123function //代码效果参考:http://www.zidongmutanji.com/bxxx/412830.html

strToJson(str){ return JSON.parse(str);}

目前IE8(S)/Firefox3.5+/Chrome4/Safari4/Opera10 已实现了该方法。

使用JSON.parse需严格遵守JSON规范,如属性都需用引号引起来,如下

?12var str = '{name:"jack"}';var obj = JSON.parse(str); // --> parse error

name没有用引号引起来,使用JSON.parse所有浏览器中均抛异常,解析失败。而前两种方式则没问题。

相关:

相关文章
|
JSON JavaScript 前端开发
JavaScript实现字符串转json对象的方法
JavaScript实现字符串转json对象的方法
|
10月前
|
API 数据安全/隐私保护 网络架构
API接口
API(应用程序编程接口)是软件间通信的标准方式,通过定义规则和协议,便于开发者构建和集成服务。它通常基于RESTful架构或GraphQL实现,使用HTTP方法进行数据交互。以RESTful API为例,它通过GET、POST、PUT、DELETE等方法执行数据操作。示例中使用Python的requests库调用OpenWeatherMap API获取天气信息,展示了GET请求的实现。实际应用中,API还需结合OAuth 2.0等认证机制保障安全性。
|
druid Java 数据库连接
java报错Error attempting to get column ‘XXX’ from result set. Cause: java.sql.怎么解决?
java报错Error attempting to get column ‘XXX’ from result set. Cause: java.sql.怎么解决?
3450 0
java报错Error attempting to get column ‘XXX’ from result set. Cause: java.sql.怎么解决?
|
安全 网络协议 网络安全
【网络连接】ping不通的常见原因+解决方案,如何在只能访问网关时诊断,并修复IP不通的问题
【网络连接】ping不通的常见原因+解决方案,如何在只能访问网关时诊断,并修复IP不通的问题
35236 0
|
JavaScript 前端开发 Python
优化代码示例排版的方法与技巧
【10月更文挑战第17天】在实际的文档编写过程中,要不断地总结经验,根据具体情况灵活运用这些方法,以达到最佳的排版效果。同时,也要关注读者的反馈,根据他们的建议和需求进行改进,使文档更加贴合读者的需求和期望。只有这样,才能真正为读者提供有价值的信息和良好的阅读体验。
574 3
|
Java Windows
如何在windows上运行jar包/JAR文件 如何在cmd上运行 jar包 保姆级教程 超详细
本文提供了一个详细的教程,解释了如何在Windows操作系统的命令提示符(cmd)中运行JAR文件。
12697 1
|
XML JSON Java
老程序员分享:JAVA对象转换JSON
老程序员分享:JAVA对象转换JSON
1629 0
|
jenkins Linux 测试技术
在Linux中,什么是CI/CD,并且如何在Linux中实现它。
在Linux中,什么是CI/CD,并且如何在Linux中实现它。
|
Java 程序员
国际化常用时间格式并进行格式转换
国际化常用时间格式并进行格式转换
877 0