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 相关文章推荐
Kibo 用于处理键盘事件的Javascript工具库
Oct 28 Javascript
javascript中验证大写字母、数字和中文
Jan 15 Javascript
js判断ie版本号的简单实现代码
Mar 05 Javascript
从零学JSON之JSON数据结构
May 19 Javascript
JavaScript代码编写中各种各样的坑和填坑方法
Jun 06 Javascript
jQuery学习笔记之jQuery+CSS3的浏览器兼容性
Jan 19 Javascript
ionic js 复选框 与普通的 HTML 复选框到底有没区别
Jun 06 Javascript
JS HTML5拖拽上传图片预览
Jul 18 Javascript
angularjs实现柱状图动态加载的示例
Dec 11 Javascript
Vue2.0用户权限控制解决方案的示例
Feb 10 Javascript
详解如何使用babel进行es6文件的编译
May 29 Javascript
Web安全之XSS攻击与防御小结
Dec 13 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
用PHP和ACCESS写聊天室(十)
2006/10/09 PHP
php生成随机密码的几种方法
2011/01/17 PHP
Apache2中实现多网站域名绑定的实现方法
2011/06/01 PHP
PHP计算数组中值的和与乘积的方法(array_sum与array_product函数)
2016/04/01 PHP
php基于SQLite实现的分页功能示例
2017/06/21 PHP
PHP设计模式之建造者模式(Builder)原理与用法案例详解
2019/12/12 PHP
JavaScript中关于indexOf的使用方法与问题小结
2010/08/05 Javascript
javascript 防止刷新,后退,关闭
2010/08/07 Javascript
jQuery EasyUI API 中文文档 - Panel面板
2011/09/30 Javascript
jquery 插件学习(六)
2012/08/06 Javascript
jquery性能优化高级技巧
2015/08/24 Javascript
基于JavaScript制作霓虹灯文字 代码 特效
2015/09/01 Javascript
jQuery实现图片向左向右切换效果的简单实例
2016/05/18 Javascript
js实现多图左右切换功能
2016/08/04 Javascript
Vue中定义全局变量与常量的各种方式详解
2017/08/23 Javascript
基于layui数据表格以及传数据的方式
2018/08/19 Javascript
vue+egg+jwt实现登录验证的示例代码
2019/05/18 Javascript
vue给对象动态添加属性和值的实例
2019/09/09 Javascript
深入解读VUE中的异步渲染的实现
2020/06/19 Javascript
在Vue里如何把网页的数据导出到Excel的方法
2020/09/30 Javascript
Ant-design-vue Table组件customRow属性的使用说明
2020/10/28 Javascript
[02:27]2018DOTA2亚洲邀请赛趣味视频之钓鱼大赛 谁是垂钓冠军?
2018/04/05 DOTA
Python使用MD5加密算法对字符串进行加密操作示例
2018/03/30 Python
Python实现爬取亚马逊数据并打印出Excel文件操作示例
2019/05/16 Python
Python脚本去除文件的只读性操作
2020/03/05 Python
python3爬虫GIL修改多线程实例讲解
2020/11/24 Python
python中绕过反爬虫的方法总结
2020/11/25 Python
python压包的概念及实例详解
2021/02/17 Python
Html5实现文件异步上传功能
2017/05/19 HTML / CSS
HTML5 canvas 瀑布流文字效果的示例代码
2018/01/31 HTML / CSS
猫途鹰英国网站:TripAdvisor英国(旅游社区和旅游评论)
2016/08/30 全球购物
优秀党员获奖感言
2014/02/18 职场文书
英文感谢信范文
2015/01/21 职场文书
学生犯错保证书
2015/05/09 职场文书
《打电话》教学反思
2016/02/22 职场文书
2019毕业论文致谢词
2019/06/24 职场文书