js中json对象和字符串的理解及相互转化操作实现方法


Posted in Javascript onSeptember 22, 2017

本文实例讲述了js中json对象和字符串的理解及相互转化操作实现方法。分享给大家供大家参考,具体如下:

<script>
 var str="{'strv':["+
       "{'a':'a11'},"+
       " {'a':'b222'}"+
     " ]}";
 //如果放在一行更清楚:var str="{'strv':[{'a':'a11'}, {'a':'b222'} ]}";
 var str2=eval('('+str+')');
// alert(str2.strv[1].a);
 var jsonob={'jsonv':[
         {'j':'j111'},
         {'j':'j222'}
       ]};
//如果放在一行更清楚:var jsonob={'jsonv':[ {'j':'j111'}, {'j':'j222'} ]};
// alert(jsonob.jsonv[1].j);
 /*
var  str="{'strv':[{'a':'a11'}, {'a':'b222'} ]}";
var jsonob={'jsonv':[ {'j':'j111'}, {'j':'j222'} ]};
这样我们可以看出json对象和字符串是不一样的!
字符串就是字符串,json对象是一个对象。
虽然其内容都是我们看到的json格式,但是两者是有区别的。
我们想取出其中某个属性的值,其实是对json对象操作的(你能取出对象的属性值,但不能取出字符串的属性值,字符串没属性。)。
所以如果你拿到的是对象,那你就直接可以取值了,
例如jsonob.jsonv[1].j。
如果你拿到的是字符串,那你必须先转化成对象才可以取值,
字符串转对象有几种方法,js本身自带的是var str2=eval('('+str+')');
这里的str2就是对象了。如果你引入了json.js文件,还可以使用其中的
方法,这些都已经封装好了。
总结:json只是一种格式。符合这种格式的可以是json对象,也可以是字符串。
要取属性值只能从对象里取。所以需要两者的转化。
js自带的转化方法:
 字符串转成json对象:
   var str="{'strv':[{'a':'a11'}, {'a':'b222'} ]}";//字符串
   var jsonObject=eval('('+str+')');//json对象
 json对象转成字符串:
   js本身没有这样的方法,你需要自己写这样的方法,才能转化。
从上可知,js本身只可以将字符串转成json对象,
但不可以将json对象转成字符串。其实我们可以用
json.js里的方法,而且更简单。这时你要引入json.js文件。
json.js里的方法:
 字符串转成json对象:
     var str="{'strv':[{'a':'a11'}, {'a':'b222'} ]}";//字符串
  转成json对象方法1: var myJSONObject1=str.parseJSON();
  转成json对象方法2: var myJSONObject2=JSON.parse(str);
 json对象转成字符串:
     var jsonob={'jsonv':[ {'j':'j111'}, {'j':'j222'} ]};//json对象
  转成字符串方法1:var mystr1=jsonob.toJSONString();
  转成字符串方法2: var mystr2=JSON.stringify(jsonob);
 */
</script>

通过实验,我们应该明白,json其实是一种格式,js本身支持这种格式,

所以你不需要引入json.js就可以使用json对象。我们一般会引入json.js因为这里面封装了json对象和字符串转化的方法,方便我们使用(当然还有其他方法)。

通过本例我们更好地理解json对象和字符串之间的区别。

Javascript 相关文章推荐
jquery 学习笔记 传智博客佟老师附详细注释
Sep 12 Javascript
JQury slideToggle闪烁问题及解决办法
Jul 05 Javascript
Knockout visible绑定使用方法
Nov 15 Javascript
JQuery解析HTML、JSON和XML实例详解
Mar 29 Javascript
整理AngularJS框架使用过程当中的一些性能优化要点
Mar 05 Javascript
javascript正则表达式中分组详解
Jul 17 Javascript
从零学习node.js之express入门(六)
Feb 25 Javascript
Javascript 一些需要注意的细节(必看篇)
Jul 08 Javascript
详解vue mint-ui源码解析之loadmore组件
Oct 11 Javascript
vue-router history模式下的微信分享小结
Jul 05 Javascript
vue配置多代理服务接口地址操作
Sep 08 Javascript
Vue ​v-model相关知识总结
Jan 28 Vue.js
利用javascript如何随机生成一定位数的密码
Sep 22 #Javascript
ES6中新增的Object.assign()方法详解
Sep 22 #Javascript
Vee-Validate的使用方法详解
Sep 22 #Javascript
Js中async/await的执行顺序详解
Sep 22 #Javascript
Node.js自定义实现文件路由功能
Sep 22 #Javascript
详解bootstrap用dropdown-menu实现上下文菜单
Sep 22 #Javascript
javascript计算渐变颜色的实例
Sep 22 #Javascript
You might like
php中常用编辑器推荐
2007/01/02 PHP
15种PHP Encoder的比较
2007/04/17 PHP
PHP开启opcache提升代码性能
2015/04/26 PHP
基于Laravel实现的用户动态模块开发
2017/09/21 PHP
php微信公众号开发之现金红包
2018/04/16 PHP
JavaScript原型继承之基础机制分析
2011/08/26 Javascript
ASP.NET jQuery 实例1(在TextBox里面创建一个默认提示)
2012/01/13 Javascript
jquery可见性过滤选择器使用示例
2013/06/24 Javascript
通过onmouseover选项卡实现img图片的变化
2014/02/12 Javascript
深入剖析JavaScript中的枚举功能
2014/03/06 Javascript
基于JavaScript实现定时跳转到指定页面
2016/01/01 Javascript
详解JavaScript表单验证(E-mail 验证)
2016/03/31 Javascript
微信小程序 获取设备信息 API实例详解
2016/10/02 Javascript
JS取模、取商及取整运算方法示例
2016/10/13 Javascript
javascript设计模式之策略模式学习笔记
2017/02/15 Javascript
easy ui datagrid 从编辑框中获取值的方法
2017/02/22 Javascript
微信小程序 判断手机号的实现代码
2017/04/19 Javascript
每周一练 之 数据结构与算法(Stack)
2019/04/16 Javascript
JS实现前端动态分页码代码实例
2020/06/02 Javascript
vue radio单选框,获取当前项(每一项)的value值操作
2020/09/10 Javascript
echarts柱状图背景重叠组合而非并列的实现代码
2020/12/10 Javascript
[46:37]LGD vs TNC 2019国际邀请赛小组赛 BO2 第二场 8.15
2019/08/16 DOTA
python查看zip包中文件及大小的方法
2015/07/09 Python
Python全局变量用法实例分析
2016/07/19 Python
python机器学习理论与实战(一)K近邻法
2021/01/28 Python
详谈Python 窗体(tkinter)表格数据(Treeview)
2018/10/11 Python
Python搭建代理IP池实现获取IP的方法
2019/10/27 Python
python3.8动态人脸识别的实现示例
2020/09/21 Python
西班牙电子产品购物网站:Electronicamente
2018/07/26 全球购物
工商管理专业大学生职业生涯规划范文
2014/03/09 职场文书
小学优秀辅导员事迹材料
2014/05/11 职场文书
横店影视城导游词
2015/02/06 职场文书
优质护理心得体会
2016/01/22 职场文书
Hive HQL支持2种查询语句风格
2022/06/25 数据库
Django数据库(SQlite)基本入门使用教程
2022/07/07 Python
mysql函数之截取字符串的实现
2022/08/14 MySQL