前言:JSON是一个独立于任何语言的数据格式,因此,严格来说,没有“JSON对象”和“JSON字符串”这个说法(然而”菜鸟教程“和”W3school“使用了“JSON对象”和“JSON字符串”这个说法,我也有点懵),可以称为符合JSON格式的某某对象或者字符串,例如符合JSON格式的js对象,符合JSON格式的字符串(为啥不说成符合JSON格式的js字符串,因为在所有语言中字符串都有相同的定义:数字、字母、下划线组成的一串字符)。

  JSON语法中对于字符串的定义:是由双引号包围的任意数量Unicode字符的集合,使用反斜线转义。一个字符(character)即一个单独的字符串(character string)。

  1、JSON格式的字符串 ----> JSON格式的js对象:

  • 使用JSON.parse()函数

推荐使用,如果遇到浏览器不支持这个方法,保持淡定,到JSON官网下载json2.js,并引入到当前页面,就能使用了

var jsonStr = "{\"name\":\"zhangsan\",\"age\":23,\"email\":\"chentging@aliyun.com\"}";
var json = JSON.parse(jsonStr);
console.log(json);//输出:Object {name: "zhangsan", age: 23, email: "chentging@aliyun.com"}
  • 使用eval()函数

不推荐使用,会产生安全问题

var jsonStr = "{\"name\":\"zhangsan\",\"age\":23,\"email\":\"chentging@aliyun.com\"}";
var json = eval ("(" + jsonStr + ")");
console.log(json);//输出:Object {name: "zhangsan", age: 23, email: "chentging@aliyun.com"}
  • 使用jQuery插件jQuery.parseJSON()
var jsonStr = "{\"name\":\"zhangsan\",\"age\":23,\"email\":\"chentging@aliyun.com\"}";
var json = jQuery.parseJSON(jsonStr);
console.log(json);//输出:Object {name: "zhangsan", age: 23, email: "chentging@aliyun.com"}

  补充:

  JSON解析器的parse()函数对于js对象是否符合JSON格式是不加限定的

  下面这种单引号套双引号的字符串,不符合JSON语法对字符串的定义,但也能使用上面三种方法转换成JSON格式的js对象

var jsonStr = '{"name":"zhangsan","age":23,"email":"chentging@aliyun.com"}';
var json = jQuery.parseJSON(jsonStr);
console.log(json);//输出:Object {name: "zhangsan", age: 23, email: "chentging@aliyun.com"}

  2、JSON格式的js对象 ----> JSON格式的字符串:

  • 使用JSON.stringify()
var json = {"name": "zhangsan", "age": 23, "email": "chentging@aliyun.com"};
var jsonStr = JSON.stringify(json);
console.log(jsonStr);//输出:"{"name":"zhangsan","age":23,"email":"chentging@aliyun.com"}"

  补充:

  与JSON解析器的parse()函数一样,stringify()对于js对象是否符合JSON格式也是不加限定的

var jsonObj = {name : "zhangsan",age : 23, email : "chentging@aliyun.com"};
var jsonStr = JSON.stringify(json);
console.log(jsonStr);//输出:"{"name":"zhangsan","age":23,"email":"chentging@aliyun.com"}"

参考文章:

(1) https://www.cnblogs.com/cdf-opensource-007/p/6384724.html

(2) https://www.cnblogs.com/longailong/p/7344567.html

JavaScript中,JSON格式的字符串与JSON格式的对象相互转化的更多相关文章

  1. json格式的字符串转为json对象遇到特殊字符问题解决

    中午做后台发过来的json的时候转为对象,可是有几条数据一直出不来,检查发现json里包含了换行符,造成这种情况的原因可能是编辑部门在编辑的时候打的回车造成的 假设有这样一段json格式的字符串 va ...

  2. javascript中无法将string转化为json对象

    在一次项目之中,我要对请求的相应做一些处理,得到的响应差不多是这中格式'{total:1,result:[{"age":1}]}'.可以看到我拿到的这个相应和JSON的格式是非常相 ...

  3. JAVA中如何将一个json形式的字符串转为json对象或对象列表

    import java.util.*; import java.text.SimpleDateFormat; import org.json.JSONObject; import org.json.J ...

  4. JavaScript中的数组和字符串

    知识内容: 1.JavaScript中的数组 2.JavaScript中的字符串 一.JavaScript中的数组 1.JavaScript中的数组是什么 数组指的是数据的有序列表,每种语言基本上都有 ...

  5. JavaScript中如何将html字符串转化为Jquery对象或者Dom对象

    最近在开发百度地图相关的一个应用,需要从硬编码的html字符串中提取自己想要的元素以及属性信息.但是在js中或者jQuery中操作元素节点以及属性都是使用DOM对象或者jquery对象.下面将介绍如何 ...

  6. JAVA中如何将一个json形式的字符串转为json对象

    import java.io.*; import org.json.*; public class Demo { public static void main(String[] args) thro ...

  7. js 如何把JSON格式的字符串转换为JSON对象

    直接用eval函数.例:var str1 = '{ "url": "www.51qdq.com", "name": "js&quo ...

  8. ——————————JavaScript中,对String字符串的一些操作——————————

    ————————————————————————————————————————————————————————————————————————————————————————————— <ht ...

  9. Java程序、JSP以及JavaScript中如何判断某个字符串是否包含某个子串

    1.JSP str:原始字符串, subStr:要查找的子字符串 <c:if test="${fn:contains(str,subStr)==true}"> < ...

随机推荐

  1. [Jenkins][git]构建时提示Caused by: hudson.plugins.git.GitException: Command "/usr/bin/git reset --hard" returned status code 128:

    --------------------- 如需转载,转载请注明出处. --------------------- 今日发现所有IOS构建相关的job全部失败,并提示如下错误: ERROR: Erro ...

  2. springboot~让我习惯了TDD的开发模式

    TDD是什么 TDD就是测试驱动开发,以测试用例为主导,去开发项目,业务代码该怎么写还是怎么写,在实现UI之前,可以先实现Test用例,通过test来实现对业务场景的模拟,最终让你的代码更稳定. 大叔 ...

  3. 项目重构之数据源配置与优化:log4j 配置数据库连接池Druid,并实现日志存储到数据库

    作者:泥沙砖瓦浆木匠网站:http://blog.csdn.net/jeffli1993个人签名:打算起手不凡写出鸿篇巨作的人,往往坚持不了完成第一章节. 交流QQ群:[编程之美 365234583] ...

  4. js变量提升与函数提升的详细过程

    大家好,这里是「 从零开始学 Web 系列教程 」,并在下列地址同步更新...... github:https://github.com/Daotin/Web 微信公众号:Web前端之巅 博客园:ht ...

  5. 01 Windows安装Tensorflow

    1.安装Python. 点击此处下载Python3.5.2.安装Python时一定要选择安装pip. 2.配置Python环境变量. 将%安装路径%\Scripts添加到Path下面. 3.修改Pip ...

  6. Deeplearning.ai课程笔记--汇总

    从接触机器学习就了解到Andrew Ng的机器学习课程,后来发现又出来深度学习课程,就开始在网易云课堂上学习deeplearning.ai的课程,Andrew 的课真是的把深入浅出.当然学习这些课程还 ...

  7. 深入理解Java虚拟机阅读心得(三)

    Java中提倡的自动内存管理最终可以归结为自动化的解决两个问题: 给对象分配内存 回收分配给对象的内存 先说说回收这一方面的两个主要知识点 一.垃圾收集算法 1.标记-清理算法 首先标记出所有需要回收 ...

  8. 爬虫实现:根据IP地址反查域名

    域名解析与IP地址 域名解析是把域名指向网站空间IP,让人们通过注册的域名可以方便地访问到网站的一种服务:IP地址是网络上标识站点的数字地址,为了方便记忆,采用域名来代替IP地址标识站点地址.域名解析 ...

  9. Ubuntu16---安装mysql5.7未提示输入密码,安装后修改mysql密码默认密码

    Ubuntu16安装mysql5.7未提示输入密码,安装后修改mysql密码默认密码 mysql默认密码为空 但是使用mysql -uroot -p 命令连接mysql时,报错 ERROR 1045 ...

  10. 分布式系统监视zabbix讲解十之监控tomcat--技术流ken

    前言 在Zabbix中,JMX监控数据的获取由专门的代理程序来实现,即Zabbix-Java-Gateway来负责数据的采集,Zabbix-Java-Gateway和JMX的Java程序之间通信获取数 ...