文档章节

Json 与 javascript 对象的区别

china_y
 china_y
发布于 2017/05/04 10:36
字数 490
阅读 12
收藏 0

json

  • 定义 :是一种格式,用于数据交换。

Javascript 对象

  • 定义 : 一种javascript的引用类型
  • 区别

    对比内容 JSON Javascript 对象
    键名 必须是加双引号 可允许加单引号,双引号,也可以不加
    属性值 只能是数值(10进制) ,字符串(双引号),布尔值和null,也可以是数组,符合JSON的对象,不能是函数,NaN,Infinity,-Infinity和undefined javascript 中的任意值
    逗号问题 最后一个值后面不能有逗号 可以有逗号
    数值问题 前导不能为0,小数点后会有值

    都可以

    JSON.stringify 函数

    作用:把对象转成JSON字符串,因此会忽略 属性值不符合JSON 的字段

    var test = {
        one : 'Good',
        'two' : 'Man',
        'three' : undefined,
        'four' : [ 1, 2 ],
        'five' : function() {
            return 'test'
        } 
    }
    
    JSON.stringify(test); //"{"one":"Good","two":"Man","four":[1,2]}"

JSON和JS对象之间的互转

1. jQuery插件支持的转换方式

$.parseJSON( jsonstr ); //jQuery.parseJSON(jsonstr),可以将json字符串转换成json对象 

 

2. 浏览器支持的转换方式(Firefox,chrome,opera,safari,ie9,ie8)等浏览器:

JSON.parse(jsonstr); //可以将json字符串转换成json对象 
JSON.stringify(jsonobj); //可以将json对象转换成json对符串 

注:ie8(兼容模式),ie7和ie6没有JSON对象,推荐采用JSON官方的方式,引入json.js。 

3. Javascript支持的转换方式

eval('(' + jsonstr + ')'); //可以将json字符串转换成json对象,注意需要在json字符外包裹一对小括号 
注:ie8(兼容模式),ie7和ie6也可以使用eval()将字符串转为JSON对象,但不推荐这些方式,这种方式不安全eval会执行json串中的表达式。 

4 .JSON官方的转换方式: 

http://www.json.org/提供了一个json.js,这样ie8(兼容模式),ie7和ie6就可以支持JSON对象以及其stringify()和parse()方法; 
可以在https://github.com/douglascrockford/JSON-js上获取到这个js,一般现在用json2.js。

 

© 著作权归作者所有

共有 人打赏支持
china_y
粉丝 1
博文 1
码字总数 490
作品 0
徐汇
程序员
私信 提问
javascript eval和JSON之间的联系

如果您想详细了解eval和JSON请参考以下链接: eval :https://developer.mozilla.org/En/CoreJavaScript1.5Reference/GlobalFunctions/Eval JSON:http://www.json.org/ eval函数的工作原理 ......

C_Liwang
2014/03/28
0
0
JavaScript面试大全(二)

eval()是做什么的? [eval()是“魔鬼”][1] null,undefined 的区别? [来看看大神阮一峰的解释吧][2] 写一个通用的事件侦听器函数。 [JS事件监听器][3] Node.js的适用场景? [NodeJS优缺点及...

百变茄
2014/06/05
0
0
好的javascript程序员

这段时间一直在使用JS进行开发,其实我挺喜欢JS的,一个主要的原因就是自由。JS限制较少可以容易的实现自己的一些思想。或者换种说法,就是可以写出极其精简的代码,虽然精简不到LISP的水平,...

崔钢
2014/10/25
0
0
js与php在数组与对象之间的差异

摘要:js和php都是弱类型语言,他们都支持跨平台,然后数据在使用时,都不需要定义类型。有点类似于c++的函数模板,自动判断类型。但他们还是有挺多区别的,下面简单的介绍下js和php在数组与...

魏邪乎
2014/07/21
0
0
js操作object、Array、json总结

一、[]与array的区别 在JS中,[]表示数组,{}表示对象;一般在JSON中使用; 例如:var json={"eles":["aaa","bbb","ccc","ddd"]}; 表示对象json的eles属性的值为一个四个元素的数组; 可以通...

废柴
09/19
0
0

没有更多内容

加载失败,请刷新页面

加载更多

Spring Cloud 分布式链路跟踪 Sleuth + Zipkin + Elasticsearch

随着业务越来越复杂,系统也随之进行各种拆分,特别是随着微服务架构的兴起,看似一个简单的应用,后台可能很多服务在支撑;一个请求可能需要多个服务的调用;当请求迟缓或不可用时,无法得知...

编程SHA
4分钟前
0
0
Swift-清除缓存

func removeCache (){ // 取出cache文件夹路径.如果清除其他位子的可以将cachesDirectory换成对应的文件夹 let cachePath = NSSearchPathForDirectoriesInDomains(FileMan...

west_zll
4分钟前
0
0
kl键盘事件

frameworks/base/data/keyboards路径下定义了很对kl文件。如Vendor_0416_Product_0300.kl,定义了某某遥控器的按键事件 # TVkey 103 DPAD_UPkey 108 DPAD_DOWNkey 105 DPAD_LEFTk...

安卓工程师王恒
7分钟前
0
0
CentOS 7 安装 Docker

工具: Oracle VM VirtualBox 虚拟机 ,本地电脑win10 系统: 虚拟机装 centos 7 前置条件: Docker 要求 CentOS 系统的内核版本高于 3.10 1. 通过 uname -r 命令查看当前的内核版本 2. 如果不够...

_大侠__
18分钟前
0
0
webrtc onAddStream回调流程

背景 webrtc代码基于M59 正文 1. 回调设置和处理 (1)java层先在监听器中实现回调处理函数,如下所示: private class PCObserver implements PeerConnection.Observer { @Override...

bill_shen
20分钟前
0
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部