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代码
Dec 15 Javascript
根据出生日期自动取得星座的js代码
Jul 20 Javascript
这些年、我收集的JQuery代码小结
Aug 01 Javascript
js实现带有介绍的Select列表菜单实例
Aug 18 Javascript
js实现YouKu的漂亮搜索框效果
Aug 19 Javascript
JS实现图片居中悬浮效果
Dec 25 Javascript
vue弹窗插件实战代码
Sep 08 Javascript
highCharts提示框中显示当前时间的方法
Jan 18 Javascript
vue权限问题的完美解决方案
May 08 Javascript
javascript异步编程的六种方式总结
May 17 Javascript
JS求1到任意数之间的所有质数的方法详解
May 20 Javascript
vue中使用带隐藏文本信息的图片、图片水印的方法
Apr 24 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
常用星际术语索引(新手指南)
2020/03/04 星际争霸
详解php设置session(过期、失效、有效期)
2015/11/12 PHP
PHP实现多关键字加亮功能
2016/10/21 PHP
PHP设计模式之工厂方法设计模式实例分析
2018/04/25 PHP
php生成二维码不保存服务器还有下载功能的实现代码
2018/08/09 PHP
tp5框架前台无限极导航菜单类实现方法分析
2020/03/29 PHP
js右键菜单效果代码
2007/07/21 Javascript
javascript比较文档位置
2008/04/08 Javascript
dojo随手记 gird组件引用
2011/02/24 Javascript
javascript动态加载二
2012/08/22 Javascript
简单实用的全选反选按钮例子
2013/10/18 Javascript
千分位数字格式化(用逗号隔开 代码已做了修改 支持0-9位逗号隔开)的JS代码
2013/12/05 Javascript
javascript实现网页背景烟花效果的方法
2015/08/06 Javascript
jquery easyUI中ajax异步校验用户名
2016/08/19 Javascript
js上下视差滚动简单实现代码
2017/03/07 Javascript
鼠标经过出现气泡框的简单实例
2017/03/17 Javascript
vuex实现登录状态的存储,未登录状态不允许浏览的方法
2018/03/09 Javascript
vue-cli初始化项目中使用less的方法
2018/08/09 Javascript
angular1.x ui-route传参的三种写法小结
2018/08/31 Javascript
js 实现在2d平面上画8的方法
2018/10/10 Javascript
JS/HTML5游戏常用算法之碰撞检测 包围盒检测算法详解【圆形情况】
2018/12/13 Javascript
vue中使用vue-cli接入融云实现即时通信
2019/04/19 Javascript
JavaScript迭代器的含义及用法
2019/06/21 Javascript
[48:31]DOTA2-DPC中国联赛 正赛 Dynasty vs XG BO3 第一场 2月2日
2021/03/11 DOTA
python在windows下实现ping操作并接收返回信息的方法
2015/03/20 Python
Python中pip安装非PyPI官网第三方库的方法
2015/06/02 Python
Python实现数据可视化看如何监控你的爬虫状态【推荐】
2018/08/10 Python
Python实现的统计文章单词次数功能示例
2019/07/08 Python
利用python实现PSO算法优化二元函数
2019/11/13 Python
python实现拼图小游戏
2020/02/22 Python
python应用Axes3D绘图(批量梯度下降算法)
2020/03/25 Python
python 基于Apscheduler实现定时任务
2020/12/15 Python
css背景图片的背景裁切、背景透明度、背景变换等效果运用
2012/12/24 HTML / CSS
CSS3实现多样的边框效果
2018/05/04 HTML / CSS
小程序瀑布流解决左右两边高度差距过大的问题
2019/02/20 HTML / CSS
Java代码规范与质量检测插件SonarLint的使用
2022/08/05 Java/Android