详解JavaScript中js对象与JSON格式字符串的相互转换
本篇文章主要介绍了JavaScript中js对象与JSON格式字符串的相互转换,具有一定的参考价值,感兴趣的小伙伴们可以参考一下。
首先我们来看一下js中JSON格式的字符串
var JSONStr1 = "{\"name\" : \"张三\"}";
注意以下的写法不是js中JSON格式的字符串,它只是一个js的字符串。
var JSONStr2 = "{'name' : '张三'}";
我们看JSON语法中对于字符串的定义:是由双引号包围的任意数量Unicode字符的集合,使用反斜线转义。一个字符(character)即一个单独的字符串(character string)。
下面我们来看一下在js中怎么把JSON格式的字符串转换成一个JS对象。(
var jsObj3 = eval("(" + JSONStr1 + ")"); var jsObj4 = JSON.parse(JSONStr1);
推荐使用第二种方式具体原因请参看:http://www.php.cn/
此外提一句使用这两种方式转换后的js对象,应该是“一个符合JSON数据格式的js对象”,也就是说它的属性是带着引号的,这只是我的一种猜测,因为如果JSON格式的字符串如下表示:
var JSONStr1 = "{\"f[name]\" : \"张三\"}";
那么转换后的JS对象的属性必定要加上引号,因为js对象的属性不加引号只能使用字母,数字,下划线和$符号表示,使用其它符号属性就要加上引号了,所以说JS对象字面量表示法中属性加上引号是不会错的。另外如果JSON格式的字符串如上所示,那么转换后的js对象对f[name]取值就不能使用 jsObj4.f[name] 要用 jsObj4['f[name]'] ,因为有特殊字符,这点要注意了。对于我的猜测,读者要有异议,可以提给我。
我们再来看看在js中js对象与JSON格式字符串的转换。下面我准备了几组js对象加以说明:
<input type="button" value="测试按钮1" onclick="testJson();"/> <script type="text/javascript"> //(1) 这是一个js对象 var jsObj1 = { name : "张三" } //(2)这是一个内部带有方法js对象。 var jsObj2 = { name : "张三", func : function(){ alert("hello"); } } //(3)这是一个符合JSON数据格式的js对象 var jsonObj = { "name" : "张三", "age" : 10, "remark" : {"high" :170,"address" : "beijingshi"} } // js数组对象 var jsArray = [ {name : "张三"}, {"age" : 10} ] function testJson(){ var JSONstr1 = JSON.stringify(jsObj1); var JSONstr2 = JSON.stringify(jsObj2); var JSONstr3 = JSON.stringify(jsonObj); var JSONstr4 = JSON.stringify(jsArray); alert(JSONstr1); alert(JSONstr2); alert(JSONstr3); alert(JSONstr4); }
看一下弹框的内容:
(1) (2)
(3) (4)
其中 (1)、(3)、(4)的执行结果说明,JSON解析器的stringify()函数对于js对象是fou符合JSON格式是不加限定,都可以把js对象转换成JSON格式字符串。
(2)的执行结果说明,js对象中如果没有JSON表示的值(比如函数和undefined)将会被排除。
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持PHP中文网。
更多详解JavaScript中js对象与JSON格式字符串的相互转换相关文章请关注PHP中文网!

热AI工具

Undresser.AI Undress
人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover
用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool
免费脱衣服图片

Clothoff.io
AI脱衣机

Video Face Swap
使用我们完全免费的人工智能换脸工具轻松在任何视频中换脸!

热门文章

热工具

记事本++7.3.1
好用且免费的代码编辑器

SublimeText3汉化版
中文版,非常好用

禅工作室 13.0.1
功能强大的PHP集成开发环境

Dreamweaver CS6
视觉化网页开发工具

SublimeText3 Mac版
神级代码编辑软件(SublimeText3)

热门话题











Python和JavaScript开发者的薪资没有绝对的高低,具体取决于技能和行业需求。1.Python在数据科学和机器学习领域可能薪资更高。2.JavaScript在前端和全栈开发中需求大,薪资也可观。3.影响因素包括经验、地理位置、公司规模和特定技能。

JavaScript是现代Web开发的基石,它的主要功能包括事件驱动编程、动态内容生成和异步编程。1)事件驱动编程允许网页根据用户操作动态变化。2)动态内容生成使得页面内容可以根据条件调整。3)异步编程确保用户界面不被阻塞。JavaScript广泛应用于网页交互、单页面应用和服务器端开发,极大地提升了用户体验和跨平台开发的灵活性。

如何在JavaScript中将具有相同ID的数组元素合并到一个对象中?在处理数据时,我们常常会遇到需要将具有相同ID�...

实现视差滚动和元素动画效果的探讨本文将探讨如何实现类似资生堂官网(https://www.shiseido.co.jp/sb/wonderland/)中�...

深入探讨console.log输出差异的根源本文将分析一段代码中console.log函数输出结果的差异,并解释其背后的原因。�...

学习JavaScript不难,但有挑战。1)理解基础概念如变量、数据类型、函数等。2)掌握异步编程,通过事件循环实现。3)使用DOM操作和Promise处理异步请求。4)避免常见错误,使用调试技巧。5)优化性能,遵循最佳实践。

探索前端中类似VSCode的面板拖拽调整功能的实现在前端开发中,如何实现类似于VSCode...
