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 相关文章推荐
js函数使用技巧之 setTimeout(function(){},0)
Feb 09 Javascript
javaScript 动态访问JSon元素示例代码
Aug 30 Javascript
JS小功能(button选择颜色)简单实例
Nov 29 Javascript
js密码强度实时检测代码
Mar 02 Javascript
js获取鼠标点击的对象,点击另一个按钮删除该对象的实现代码
May 13 Javascript
深入理解ECMAScript的几个关键语句
Jun 01 Javascript
jQuery实现可以编辑的表格实例详解【附demo源码下载】
Jul 09 Javascript
jQuery实现点击查看大图并以弹框的形式居中
Aug 08 Javascript
jQuery与JavaScript节点创建方法的对比
Nov 18 Javascript
浅谈vue+webpack项目调试方法步骤
Sep 11 Javascript
动态创建Angular组件实现popup弹窗功能
Sep 15 Javascript
微信网页登录逻辑与实现方法
Apr 29 Javascript
利用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
建立动态的WML站点(三)
2006/10/09 PHP
基于数据库的在线人数,日访问量等统计
2006/10/09 PHP
PHP基本语法总结
2014/09/06 PHP
Thinkphp微信公众号支付接口
2016/08/04 PHP
PHP htmlspecialchars() 函数实例代码及用法大全
2018/09/18 PHP
js操作二级联动实现代码
2010/07/27 Javascript
JS 实现获取打开一个界面中输入的值
2013/03/19 Javascript
javascript实现信息的显示和隐藏如注册页面
2013/12/03 Javascript
JS实现往下不断流动网页背景的方法
2015/02/27 Javascript
如何实现移动端浏览器不显示 pc 端的广告
2015/10/15 Javascript
详解如何在Angular中快速定位DOM元素
2017/05/17 Javascript
vue实现裁切图片同时实现放大、缩小、旋转功能
2018/03/02 Javascript
解析vue路由异步组件和懒加载案例
2018/06/08 Javascript
vue中,在本地缓存中读写数据的方法
2018/09/21 Javascript
微信小程序开发之map地图组件定位并手动修改位置偏差
2019/08/17 Javascript
layui 阻止图片上传的实例(before方法)
2019/09/26 Javascript
vue 自定义右键样式的实例代码
2019/11/06 Javascript
Element InfiniteScroll无限滚动的具体使用方法
2020/07/27 Javascript
Javascript数组及类数组相关原理详解
2020/10/29 Javascript
浅谈vue.watch的触发条件是什么
2020/11/07 Javascript
[01:24]DOTA2上海特锦赛OG战队抵达 专车接机入驻总统套房
2016/02/23 DOTA
python使用calendar输出指定年份全年日历的方法
2015/04/04 Python
Python实现图像几何变换
2015/07/06 Python
使用python语言,比较两个字符串是否相同的实例
2018/06/29 Python
python pandas时序处理相关功能详解
2019/07/03 Python
解决django无法访问本地static文件(js,css,img)网页里js,cs都加载不了
2020/04/07 Python
CSS3按钮鼠标悬浮实现光圈效果源码
2016/09/11 HTML / CSS
Charles & Colvard官网:美国莫桑石品牌
2019/06/05 全球购物
个人生活学习自我评价范文
2013/11/26 职场文书
经典演讲稿范文
2013/12/30 职场文书
购房协议书范本
2014/04/11 职场文书
2014年个人业务工作总结
2014/11/17 职场文书
房地产销售助理岗位职责
2015/04/14 职场文书
拾金不昧表扬信怎么写
2015/05/04 职场文书
保险公司2016开门红口号集锦
2015/12/24 职场文书
纯html+css实现奥运五环的示例代码
2021/08/02 HTML / CSS