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 相关文章推荐
JQUERY CHECKBOX全选,取消全选,反选方法三
Aug 30 Javascript
JavaScript XML实现两级级联下拉列表
Nov 10 Javascript
js 实现无缝滚动 兼容IE和FF
Jul 15 Javascript
Jquery iframe内部出滚动条
Feb 11 Javascript
jQuery.Autocomplete实现自动完成功能(详解)
Jul 13 Javascript
javascript中typeof的使用示例
Dec 19 Javascript
Javascript设计模式之观察者模式(推荐)
Mar 29 Javascript
js小数计算小数点后显示多位小数的实现方法
May 30 Javascript
vue.js实现只弹一次弹框
Jan 29 Javascript
讲解vue-router之什么是动态路由
May 28 Javascript
toString.call()通用的判断数据类型方法示例
Aug 28 Javascript
npm ci命令的基本使用方法
Sep 20 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获取网络上文件
2006/10/09 PHP
PHP获取163、gmail、126等邮箱联系人地址【已测试2009.10.10】
2009/10/11 PHP
PHP反射机制原理与用法详解
2017/02/15 PHP
创建无限极分类树型结构的简单方法
2017/06/20 PHP
利用JQuery为搜索栏增加tag提示
2009/06/22 Javascript
Javascript中的for in循环和hasOwnProperty结合使用
2013/06/05 Javascript
jquery鼠标放上去显示悬浮层即弹出定位的div层
2014/04/25 Javascript
JS实现简洁、全兼容的拖动层实例
2015/05/13 Javascript
JavaScript学习笔记之数组求和方法
2016/03/23 Javascript
AngularJS HTML DOM详解及示例代码
2016/08/17 Javascript
vue中实现移动端的scroll滚动方法
2018/03/03 Javascript
解决vuejs 使用value in list 循环遍历数组出现警告的问题
2018/09/26 Javascript
jquery 验证用户名是否重复代码实例
2019/05/14 jQuery
bootstrap实现tab选项卡切换
2020/08/09 Javascript
Python实现的简单万年历例子分享
2014/04/25 Python
Python中用Spark模块的使用教程
2015/04/13 Python
python学习教程之使用py2exe打包
2017/09/24 Python
python如何在循环引用中管理内存
2018/03/20 Python
python获取文件路径、文件名、后缀名的实例
2018/04/23 Python
使用PyQtGraph绘制精美的股票行情K线图的示例代码
2019/03/14 Python
Python字符串的一些操作方法总结
2019/06/10 Python
Python爬虫使用浏览器cookies:browsercookie过程解析
2019/10/22 Python
python实现矩阵和array数组之间的转换
2019/11/29 Python
Python动态导入模块和反射机制详解
2020/02/18 Python
python实现word文档批量转成自定义格式的excel文档的思路及实例代码
2020/02/21 Python
Python ORM框架Peewee用法详解
2020/04/29 Python
Python3交互式shell ipython3安装及使用详解
2020/07/11 Python
HTML5如何实现元素拖拽
2016/03/11 HTML / CSS
英国领先的电子、技术和办公用品购物网站:Ebuyer
2018/04/04 全球购物
五年级语文教学反思
2014/01/30 职场文书
工伤赔偿协议书范本
2014/04/15 职场文书
2014教师党员自我评议总结
2014/09/19 职场文书
中学生自我评价范文
2015/03/03 职场文书
致运动员赞词
2015/07/22 职场文书
JS一分钟在github+Jekyll的博客中添加访问量功能的实现
2021/04/03 Javascript
python井字棋游戏实现人机对战
2022/04/28 Python