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 UI皮肤定制
Jul 27 Javascript
js中eval详解
Mar 30 Javascript
window.location.reload()方法刷新页面弹出要再次显示该网页对话框
Apr 24 Javascript
使用window.prompt()实现弹出用户输入的对话框
Apr 13 Javascript
在JavaScript中使用开平方根的sqrt()方法
Jun 15 Javascript
Labelauty?jQuery单选框/复选框美化插件分享
Sep 26 Javascript
JS正则表达式比较常见用法
Jan 26 Javascript
javascript闭包概念简单解析(推荐)
Jun 03 Javascript
JS 中LocalStorage和SessionStorage的使用
Aug 17 Javascript
手写Node静态资源服务器的实现方法
Mar 20 Javascript
详解js中Array的方法及技巧
Sep 12 Javascript
原生js实现的观察者和订阅者模式简单示例
Apr 18 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/12/21 PHP
通过PHP current函数获取未知字符键名数组第一个元素的值
2013/06/24 PHP
php中stream(流)的用法
2014/03/25 PHP
php实现监控varnish缓存服务器的状态
2014/12/30 PHP
PHP实践教程之过滤、验证、转义与密码详解
2017/07/24 PHP
php在windows环境下获得cpu内存实时使用率(推荐)
2018/02/08 PHP
解决3.01版的jquery.form.js中文乱码问题的解决方法
2012/03/08 Javascript
JS验证日期的格式YYYY-mm-dd 具体实现
2013/06/29 Javascript
实现图片预加载的三大方法及优缺点分析
2014/11/19 Javascript
javascript的tab切换原理与效果实现方法
2015/01/10 Javascript
javascript中 try catch用法
2015/08/16 Javascript
jQuery实现两款有动画功能的导航菜单代码
2015/09/16 Javascript
基于JavaScript代码实现随机漂浮图片广告
2016/01/05 Javascript
javascript实现任务栏消息提示的简单实例
2016/05/31 Javascript
jquery表单验证插件validation使用方法详解
2017/01/20 Javascript
简述jQuery Easyui一些用法
2017/08/01 jQuery
用JavaScript做简易的购物车的代码示例
2017/10/20 Javascript
详解ESLint在Vue中的使用小结
2018/10/15 Javascript
JS中使用new Option()实现时间联动效果
2018/12/10 Javascript
JavaScript学习笔记之图片库案例分析
2019/01/08 Javascript
js中Generator函数的深入讲解
2019/04/07 Javascript
ES6中字符串的使用方法扩展
2019/06/04 Javascript
深入了解Vue3模板编译原理
2020/11/19 Vue.js
[03:46]DAC趣味视频-中文考试.mp4
2017/04/02 DOTA
分析Python的Django框架的运行方式及处理流程
2015/04/08 Python
python常用函数与用法示例
2019/07/02 Python
CSS3的一个简单导航栏实现
2015/08/03 HTML / CSS
《夏夜多美》教学反思
2014/02/17 职场文书
公证书标准格式
2014/04/10 职场文书
《分一分》教学反思
2014/04/13 职场文书
中小学生学籍证明
2014/10/25 职场文书
2019年学校消防安全责任书(2篇)
2019/10/09 职场文书
启动Tomcat时出现大量乱码的解决方法
2021/06/21 Java/Android
ObjectMapper 如何忽略字段大小写
2021/06/29 Java/Android
python数字图像处理实现图像的形变与缩放
2022/06/28 Python
CSS 鼠标点击拖拽效果的实现代码
2022/12/24 HTML / CSS