解析Json字符串的三种方法日常常用


Posted in Javascript onMay 02, 2018

在很多时候,我们的需要将类似 json 格式的字符串数据转为json,

下面将介绍日常中使用的三种解析json字符串的方法

 1.首先,我们先看一下什么是 json 格式字符串数据,很简单,就是 json 字符串化,在json 最外加单/双号变为字符串数据     

var str='{"name":"Mike","sex":"女","age":"29"}';
 var t2="[{name:'lisi',age:'30'},{name:'wangwu',age:'16'},{name:'tianqi',age:'7'}] ";

  2.我们用Object.prototype.toString.call() 来检测数据类型

console.log(Object.prototype.toString.call(str));//[object String]
 console.log(Object.prototype.toString.call(t2));//[object String]

第一种方法:evel();

   特点:安全性底,不建议使用,单个JSON对象时要加括号,JSON数组就不需要了

      示例:

var evajson =eval('('+str+')');
var evajsarr = eval(t2);

  转换后,再使用Object.prototype.toString.call() 来检测转换后的数据类型

console.log(Object.prototype.toString.call(evajso))//[object Object]
console.log(Object.prototype.toString.call(evajsarr))//[object Array]

第二种:new Function() 

 注意:函数要有返回,所以要加“return”;

 示例:

var fnjson = new Function("return"+str)();
 var fnjsonArr = new Function("return"+t2)();

 转换后,再使用Object.prototype.toString.call() 来检测转换后的数据类型

console.log(Object.prototype.toString.call(fnjson ))//[object Object]
console.log(Object.prototype.toString.call(fnjsonArr ))//[object Array]

第三种:JSON.parse()

特点:主流,兼容性好,推荐

 示例:

var parjson = JSON.parse(str); 
 var parjson = JSON.parse(t2);

检测转后的数据类型

console.log(Object.prototype.toString.call(parjson ))//[object Object]
 console.log(Object.prototype.toString.call(parjson ))//[object Array]

总结

以上所述是小编给大家介绍的解析Json字符串的三种方法日常常用,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对三水点靠木网站的支持!

Javascript 相关文章推荐
jQuery弹出层始终垂直居中相对于屏幕或当前窗口
Apr 01 Javascript
jquery高级编程的最佳实践详解
Mar 23 Javascript
JS小游戏之宇宙战机源码详解
Sep 25 Javascript
javascript特殊日历控件分享
Mar 07 Javascript
AngularJS动态绑定ng-options的ng-model实例代码
Jun 21 Javascript
bootstrap中日历范围选择插件daterangepicker的使用详解
Apr 17 Javascript
详解vue的双向绑定原理及实现
May 05 Javascript
jquery 遍历hash操作示例【基于ajax交互】
Oct 12 jQuery
vue自定义指令实现仅支持输入数字和浮点型的示例
Oct 30 Javascript
如何正确理解vue中的key详解
Nov 02 Javascript
浅谈Node新版本13.2.0正式支持ES Modules特性
Nov 25 Javascript
如何通过JS实现日历简单算法
Oct 14 Javascript
使用vue-cli创建项目的图文教程(新手入门篇)
May 02 #Javascript
vue中的模态对话框组件实现过程
May 01 #Javascript
vue如何通过id从列表页跳转到对应的详情页
May 01 #Javascript
使用Vue的slot插槽分发父组件内容实现高度复用、更加灵活的组件(推荐)
May 01 #Javascript
不使用JavaScript实现菜单的打开和关闭效果demo
May 01 #Javascript
如何获取TypeScript的声明文件.d.ts
May 01 #Javascript
Vue项目中使用Vux的安装过程
May 01 #Javascript
You might like
PHP的历史和优缺点
2006/10/09 PHP
ThinkPHP框架设计及扩展详解
2014/11/25 PHP
php控制文件下载速度的方法
2015/03/24 PHP
php中使用in_array() foreach array_search() 查找数组是否包含时的性能对比
2015/04/14 PHP
php实现数组纵向转横向并过滤重复值的方法分析
2017/05/29 PHP
php实现多站点共用session实现单点登录的方法详解
2019/09/18 PHP
js propertychange和oninput事件
2014/09/28 Javascript
javascript遇到html5的一些表单属性
2015/07/05 Javascript
JQuery操作textarea,input,select,checkbox方法
2015/09/02 Javascript
谈谈Jquery中的children find 的区别有哪些
2015/10/19 Javascript
纯javascript实现自动发送邮件
2015/10/21 Javascript
JavaScript时间操作之年月日星期级联操作
2016/01/15 Javascript
在Javascript操作JSON对象,增加 删除 修改的简单实现
2016/06/02 Javascript
教你如何在Node.js中使用jQuery
2016/08/28 Javascript
js实现复选框的全选和取消全选效果
2017/01/03 Javascript
node puppeteer(headless chrome)实现网站登录
2018/05/09 Javascript
AngularJS与BootStrap模仿百度分页的示例代码
2018/05/23 Javascript
Async/Await替代Promise的6个理由
2019/06/15 Javascript
[01:21]辉夜杯战队访谈宣传片—CDEC
2015/12/25 DOTA
[02:10]三分钟回顾完美世界城市挑战赛
2019/01/24 DOTA
django 发送手机验证码的示例代码
2018/04/25 Python
django 自定义过滤器的实现
2019/02/26 Python
django基于restframework的CBV封装详解
2019/08/08 Python
django项目登录中使用图片验证码的实现方法
2019/08/15 Python
python3通过udp实现组播数据的发送和接收操作
2020/05/05 Python
图解Python中深浅copy(通俗易懂)
2020/09/03 Python
Python Serial串口基本操作(收发数据)
2020/11/06 Python
Python基于unittest实现测试用例执行
2020/11/25 Python
jupyter 添加不同内核的操作
2021/02/06 Python
娇韵诗加拿大官网:Clarins加拿大
2017/11/20 全球购物
毕业生求职简历中的自我评价
2013/10/18 职场文书
《九寨沟》教学反思
2014/04/08 职场文书
英语教师自荐信
2014/05/26 职场文书
2014个人年度工作总结范文
2014/12/24 职场文书
保卫工作个人总结
2015/03/03 职场文书
人民调解协议书
2016/03/21 职场文书