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 相关文章推荐
一个对于Array的简单扩展
Oct 03 Javascript
Add a Table to a Word Document
Jun 15 Javascript
js原生appendChild的bug解决心得分享
Jul 01 Javascript
js特殊字符过滤的示例代码
Mar 05 Javascript
javascript手工制作悬浮菜单
Feb 12 Javascript
jQuery实现点击小图显示大图代码分享
Aug 25 Javascript
基于javascript实现样式清新图片轮播特效
Mar 30 Javascript
Javascript中for循环语句的几种写法总结对比
Jan 23 Javascript
jQuery:unbind方法的使用详解
Aug 14 jQuery
javascript 中模板方法单例的实现方法
Oct 17 Javascript
在vue中把含有html标签转为html渲染页面的实例
Oct 28 Javascript
js闭包的9个使用场景
Dec 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
4月1日重磅发布!《星际争霸II》6.0.0版本更新
2020/04/09 星际争霸
php 仿Comsenz安装效果代码打包提供下载
2010/05/09 PHP
PHP判断一个字符串是否是回文字符串的方法
2015/03/23 PHP
javascript得到XML某节点的子节点个数的脚本
2008/10/11 Javascript
jquery.ui.progressbar 中文文档
2009/11/26 Javascript
javascript + jquery实现定时修改文章标题
2014/03/19 Javascript
JavaScript判断文件上传类型的方法
2014/09/02 Javascript
js函数与php函数的区别实例浅析
2015/01/12 Javascript
JQuery实现可直接编辑的表格
2015/04/16 Javascript
IE和Firefox之间在JavaScript语法上的差异
2016/04/22 Javascript
jQuery实现表单动态添加数据并提交的方法
2018/07/19 jQuery
jQuery实现输入框的放大和缩小功能示例
2018/07/21 jQuery
扫微信小程序码实现网站登陆实现解析
2019/08/20 Javascript
layUI使用layer.open,在content打开数据表格,获取值并返回的方法
2019/09/26 Javascript
Node.js API详解之 assert模块用法实例分析
2020/05/26 Javascript
Python strip lstrip rstrip使用方法
2008/09/06 Python
Python闭包思想与用法浅析
2018/12/27 Python
自学python的建议和周期预算
2019/01/30 Python
Python 仅获取响应头, 不获取实体的实例
2019/08/21 Python
python实现udp聊天窗口
2020/03/31 Python
django 数据库返回queryset实现封装为字典
2020/05/19 Python
关于tf.matmul() 和tf.multiply() 的区别说明
2020/06/18 Python
深入了解NumPy 高级索引
2020/07/24 Python
Python colormap库的安装和使用详情
2020/10/06 Python
python中lower函数实现方法及用法讲解
2020/12/23 Python
意大利灯具购物网站:Lampade.it
2018/10/18 全球购物
法国在线药房:Shop Pharmacie
2019/11/26 全球购物
LINUX下线程,GDI类的解释
2012/04/17 面试题
销售员岗位职责范本
2014/02/03 职场文书
全神贯注教学反思
2014/02/03 职场文书
2014年科室工作总结
2014/11/20 职场文书
2014年终工作总结范本
2014/12/15 职场文书
暑期社会实践新闻稿
2015/07/17 职场文书
女方家长婚礼致辞
2015/07/27 职场文书
Python异常类型以及处理方法汇总
2021/06/05 Python
python 爬取哔哩哔哩up主信息和投稿视频
2021/06/07 Python