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 相关文章推荐
JAVASCRIPT keycode总结
Feb 04 Javascript
JavaScript 笔记二 Array和Date对象方法
May 22 Javascript
jquery异步调用页面后台方法&amp;#8207;(asp.net)
Mar 01 Javascript
借助script进行Http跨域请求:JSONP实现原理及代码
Mar 19 Javascript
浅谈JavaScript字符串与数组
Jun 03 Javascript
js实现仿微博滚动显示信息的效果
Dec 21 Javascript
JQuery和HTML5 Canvas实现弹幕效果
Jan 04 Javascript
js判断手机系统是android还是ios
Mar 07 Javascript
Vue核心概念Action的总结
Jan 18 Javascript
JS document form表单元素操作完整示例
Jan 13 Javascript
jQuery实现移动端下拉展现新的内容回弹动画
Jun 24 jQuery
vue修饰符.capture和.self的区别
Apr 22 Vue.js
利用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 parse_url 一个好用的函数
2009/10/03 PHP
php url地址栏传中文乱码解决方法集合
2010/06/25 PHP
php使用websocket示例详解
2014/03/12 PHP
php生成xml时添加CDATA标签的方法
2014/10/17 PHP
php实现zip文件解压操作
2015/11/03 PHP
UPUPW 更新 64 位 Apache 系列 PHP 7.0 正式版
2015/12/08 PHP
php ci 获取表单中多个同名input元素值的代码
2016/03/25 PHP
javascript 动态设置已知select的option的value值的代码
2009/12/16 Javascript
JavaScript DOM 学习第五章 表单简介
2010/02/19 Javascript
基于JQuery实现异步刷新的代码(转载)
2011/03/29 Javascript
情人节专属 纯js脚本1k大小的3D玫瑰效果
2012/02/11 Javascript
Mac地址验证的javascript代码
2013/11/09 Javascript
详解JavaScript对象序列化
2016/01/19 Javascript
jquery实现下拉框功能效果【实例代码】
2016/05/06 Javascript
jQuery基于扩展实现的倒计时效果
2016/05/14 Javascript
jQuery插件开发汇总
2016/05/15 Javascript
关于function类中定义变量this的简单说明
2016/05/28 Javascript
引用jquery框架后出错的解决方法
2016/08/09 Javascript
详解js产生对象的3种基本方式(工厂模式,构造函数模式,原型模式)
2017/01/09 Javascript
微信小程序progress组件使用详解
2018/01/31 Javascript
antd vue 刷新保留当前页面路由,保留选中菜单,保留menu选中操作
2020/08/06 Javascript
python 连接各类主流数据库的实例代码
2018/01/30 Python
Python简单计算给定某一年的某一天是星期几示例
2018/06/27 Python
python中的不可变数据类型与可变数据类型详解
2018/09/16 Python
django settings.py 配置文件及介绍
2019/07/15 Python
python pyinstaller打包exe报错的解决方法
2019/11/02 Python
python使用HTMLTestRunner导出饼图分析报告的方法
2019/12/30 Python
Python接口测试结果集实现封装比较
2020/05/01 Python
处理HTML5新标签的浏览器兼容版问题
2017/03/13 HTML / CSS
老板电器官方购物商城:老板油烟机、燃气灶、消毒柜、电烤箱
2018/05/30 全球购物
领导班子党的群众路线对照检查材料
2014/09/25 职场文书
支部书记四风问题对照检查材料
2014/10/04 职场文书
2014年物流工作总结
2014/11/25 职场文书
助学金感谢信
2015/01/20 职场文书
学前班教学反思
2016/02/24 职场文书
用Python简陋模拟n阶魔方
2021/04/17 Python