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 10 Javascript
分享一个用Mootools写的鼠标滑过进度条改变进度值的实现代码
Dec 12 Javascript
jquery使用ul模拟select实现表单美化的方法
Aug 18 Javascript
自己动手制作基于jQuery的Web页面加载进度条插件
Jun 03 Javascript
JS获取当前页面名称的简单实例
Aug 19 Javascript
jQuery Validate设置onkeyup验证的实例代码
Dec 09 Javascript
js控制文本框禁止输入特殊字符详解
Apr 07 Javascript
AngularJS中下拉框的基本用法示例
Oct 11 Javascript
JS中的JSON对象的定义和取值实现代码
May 09 Javascript
Vue CLI3搭建的项目中路径相关问题的解决
Sep 17 Javascript
基于VUE实现判断设备是PC还是移动端
Jul 03 Javascript
vue+vuex+axios从后台获取数据存入vuex,组件之间共享数据操作
Jul 31 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+mysql 采用ajax技术的 省 市 地 3级联动无刷新菜单 源码
2006/12/16 PHP
收藏的PHP常用函数 推荐收藏保存
2010/02/21 PHP
php实现的简单日志写入函数
2015/03/31 PHP
php计算给定日期所在周的开始日期和结束日期示例
2017/02/06 PHP
URL编码转换,escape() encodeURI() encodeURIComponent()
2006/12/27 Javascript
如何用javascript去掉字符串里的所有空格
2007/02/08 Javascript
JavaScript 动态添加表格行 使用模板、标记
2009/10/24 Javascript
JSDoc 介绍使用规范JsDoc的使用介绍
2011/02/12 Javascript
javascript实现五星评价代码(源码下载)
2015/08/11 Javascript
javascript实现表单验证
2016/01/29 Javascript
酷! 不同风格页面布局幻灯片特效js实现
2021/02/19 Javascript
AngularJS教程之简单应用程序示例
2016/08/16 Javascript
JavaScript 中 avalon绑定属性总结
2016/10/19 Javascript
详解nodejs中的process进程
2017/03/19 NodeJs
js中变量的连续赋值(实例讲解)
2017/07/08 Javascript
JavaScript中的高级函数
2018/01/04 Javascript
vue3.0 CLI - 1 - npm 安装与初始化的入门教程
2018/09/14 Javascript
Web安全之XSS攻击与防御小结
2018/12/13 Javascript
小程序页面动态配置实现方法
2019/02/05 Javascript
pycharm 使用心得(八)如何调用另一文件中的函数
2014/06/06 Python
python中json格式数据输出的简单实现方法
2016/10/31 Python
python django 访问静态文件出现404或500错误
2017/01/20 Python
Python中的pygal安装和绘制直方图代码分享
2017/12/08 Python
西班牙汉普顿小姐:购买帆布鞋和太阳镜
2016/10/23 全球购物
草莓网美国官网:Strawberrynet USA
2016/12/11 全球购物
应届大学生自荐信格式
2013/09/21 职场文书
股份合作协议书
2014/04/12 职场文书
食堂标语大全
2014/06/11 职场文书
公司委托书范本5篇
2014/09/20 职场文书
党的群众路线教育实践活动整改落实情况自查报告
2014/10/28 职场文书
土木工程生产实习心得体会
2016/01/22 职场文书
广告文案的撰写技巧(实用干货)
2019/08/23 职场文书
工作总结之小学教师体育工作范文(3篇)
2019/10/07 职场文书
Python代码,能玩30多款童年游戏!这些有几个是你玩过的
2021/04/27 Python
MySQL 常见的数据表设计误区汇总
2021/06/07 MySQL
Python中的变量与常量
2021/11/11 Python