登录  /  注册
首页 > web前端 > js教程 > 正文

javascript json字符串如何转换成对象

醉折花枝作酒筹
发布: 2021-04-08 18:26:42
原创
23871人浏览过

转换方法:1、使用“json.parse()”方法,语法“json.parse(有效json字符串)”;2、使用“json.stringify()”方法,语法“json.stringify(有效json字符串)”。

javascript json字符串如何转换成对象

本教程操作环境:windows7系统、javascript1.8.5版、Dell G3电脑。

在实际项目中,经常遇到字符格式的问题,记下来以便日后方便查看。用到两个函数:JSON.stringify()JSON.parse()

使用ajax向后台请求数据,后台给前端返回数据,明明后端脚本写的是json函数处理后的json格式,但是前端接收数据时,却时而是object,时而是字符串,令人百思不得其解。具体原因我还不是很清楚。

在数据传输过程中,json是以文本,即字符串的形式传递的,而JS操作的是JSON对象。所以,JSON对象和JSON字符串之间的相互转换是关键。

例如:

JSON字符串:

var str1 = '{ "name": "cxh", "sex": "man" }';
登录后复制

JSON对象:

var str2 = { "name": "cxh", "sex": "man" };
登录后复制

一、JSON字符串转换为JSON对象

要使用上面的str1,必须使用下面的方法先转化为JSON对象:

//由JSON字符串转换为JSON对象

var obj = eval('(' + str + ')');
登录后复制

或者

var obj = str.parseJSON(); //由JSON字符串转换为JSON对象
登录后复制

或者

var obj = JSON.parse(str); //由JSON字符串转换为JSON对象
登录后复制

然后,就可以这样读取:

Alert(obj.name);
Alert(obj.sex);
登录后复制

特别注意:如果obj本来就是一个JSON对象,那么使用eval()函数转换后(哪怕是多次转换)还是JSON对象,但是使用parseJSON()函数处理后会有问题(抛出语法异常)。

二、可以使用toJSONString()或者全局方法JSON.stringify()将JSON对象转化为JSON字符串。

例如:

var last=obj.toJSONString(); //将JSON对象转化为JSON字符
登录后复制

或者

var last=JSON.stringify(obj); //将JSON对象转化为JSON字符
alert(last);
登录后复制

注意:

上面的几个方法中,除了eval()函数是js自带的之外,其他的几个方法都来自json.js包。新版本的 JSON 修改了 API,将 JSON.stringify() 和 JSON.parse() 两个方法都注入到了 Javascript 的内建对象里面,前者变成了 Object.toJSONString(),而后者变成了 String.parseJSON()。如果提示找不到toJSONString()和parseJSON()方法,则说明您的json包版本太低。

【推荐学习:javascript视频教程】 

以上就是javascript json字符串如何转换成对象的详细内容,更多请关注php中文网其它相关文章!

智能AI问答
PHP中文网智能助手能迅速回答你的编程问题,提供实时的代码和解决方案,帮助你解决各种难题。不仅如此,它还能提供编程资源和学习指导,帮助你快速提升编程技能。无论你是初学者还是专业人士,AI智能助手都能成为你的可靠助手,助力你在编程领域取得更大的成就。
来源:php中文网
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
最新问题
关于CSS思维导图的课件在哪? 课件
凡人来自于2024-04-16 10:10:18
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习
PHP中文网抖音号
发现有趣的

Copyright 2014-2024 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号