当前位置: 首页 > news >正文

解析Json字符串的三种方法

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

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

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

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

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

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

 

第一种方法:evel();

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

      示例:

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

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

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

 

第二种:new Function()  

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

 示例:

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

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

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

 

第二种:JSON.parse() 

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

 示例:

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

检测转后的数据类型

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

 

完结,谢谢。。。

参考:https://www.w3cschool.cn/json/8kjw1pl0.html

 

转载于:https://www.cnblogs.com/beyonds/p/8858912.html

相关文章:

  • Python_字符串处理方法
  • SqlSugar解决SQLite访问的问题:Unable to load DLL 'SQLite.Interop.dll'
  • PL/SQL的安装
  • xgboost-PythonR
  • 实验环境的搭建
  • python实现微信扫码支付模式
  • 20.20 告警系统主脚本 20.21 告警系统配置文件 20.22 告警系统监控项目
  • [NodeJS]NodeJS基于WebSocket的多用户点对点即时通讯聊天
  • Cpython 解释器下实现并发编程
  • 6、高级的数组的复制(test4.java)
  • JQuery mouseover mouseout mouseenter mouseleave 的区别
  • Nginx安装以及配置
  • 在使用mybatis中指定字段查询
  • 上海高校金马五校赛 J - 小Y写文章
  • C#求百分比
  • php的引用
  • 【140天】尚学堂高淇Java300集视频精华笔记(86-87)
  • 【162天】黑马程序员27天视频学习笔记【Day02-上】
  • Android 架构优化~MVP 架构改造
  • Brief introduction of how to 'Call, Apply and Bind'
  • dva中组件的懒加载
  • EOS是什么
  • Linux中的硬链接与软链接
  • log4j2输出到kafka
  • OSS Web直传 (文件图片)
  • Vue组件定义
  • 思考 CSS 架构
  • 提升用户体验的利器——使用Vue-Occupy实现占位效果
  • 一起来学SpringBoot | 第十篇:使用Spring Cache集成Redis
  • 在Docker Swarm上部署Apache Storm:第1部分
  • 智能合约Solidity教程-事件和日志(一)
  • hi-nginx-1.3.4编译安装
  • ​业务双活的数据切换思路设计(下)
  • # 飞书APP集成平台-数字化落地
  • #define,static,const,三种常量的区别
  • (12)Linux 常见的三种进程状态
  • (floyd+补集) poj 3275
  • (Python第六天)文件处理
  • (zz)子曾经曰过:先有司,赦小过,举贤才
  • (理论篇)httpmoudle和httphandler一览
  • (十二)python网络爬虫(理论+实战)——实战:使用BeautfulSoup解析baidu热搜新闻数据
  • (十三)Flask之特殊装饰器详解
  • (原)记一次CentOS7 磁盘空间大小异常的解决过程
  • (转) 深度模型优化性能 调参
  • (转载)CentOS查看系统信息|CentOS查看命令
  • .net 调用php,php 调用.net com组件 --
  • .net 验证控件和javaScript的冲突问题
  • .NET 依赖注入和配置系统
  • .NET/C# 反射的的性能数据,以及高性能开发建议(反射获取 Attribute 和反射调用方法)
  • /bin/bash^M: bad interpreter: No such file or directory
  • @Conditional注解详解
  • @JsonSerialize注解的使用
  • @Resource和@Autowired的区别
  • @serverendpoint注解_SpringBoot 使用WebSocket打造在线聊天室(基于注解)
  • [ Linux Audio 篇 ] 音频开发入门基础知识