文档章节

Json 与 javascript 对象的区别

china_y
 china_y
发布于 2017/05/04 10:36
字数 490
阅读 9
收藏 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程序员

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

崔钢
2014/10/25
0
0
JavaScript面试大全(二)

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

百变茄
2014/06/05
0
0
js与php在数组与对象之间的差异

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

魏邪乎
2014/07/21
0
0
JavaScript开发过程中遇到的各种个问题、bug、坑

要区分js对象与json字符串 json实际就是js对象的文本表示形式(字符串) ajax提交数据时,data中需要写的是js对象,而不是json。 使用JSON.stringify()得到的就是json(字符串),而不是js对...

城市之雾
07/05
0
0

没有更多内容

加载失败,请刷新页面

加载更多

hive数据导入导出

- 导入主要方式 load从本地加载 load从hdfs中加载 insert into方式加载 location指定源数据路径 like指定、克隆 ctas语句指定(create table tableName as ...) 手动将数据copy到表目录 5、 ...

Mr_yul
28分钟前
0
0
基于基线版本新建分支,并合并之前未合并到基线版本的分支

`合并feature2到feature5继续开发 git checkout -b feature2 origin/feature2 git pull git checkout -b baseline origin/baseline git pull git checkout -b feature5 git merge feature2 ......

philonic
35分钟前
0
0
统一认证服务CAS 5安装

简要介绍统一认证服务(CAS,Central Authentication Service,注:常称为单点登录系统)5.2.X的安装及配置。 CAS环境:Centos7.5+Tomcat8.5+jdk-8u181。后台用户管理采用openldap,其安装请...

阿笨哥
35分钟前
0
0
多线程糗事百科案例

爬取糗事百科段子,假设页面的URL是:http://www.qiushibaike.com/8hr/page/1 要求 1.使用requests获取页面信息,用XPath / re 做数据提取 2.获取每个帖子里的用户头像链接、用户姓名、段子内...

代码打碟手
38分钟前
0
0
09-《深度拆解JVM》JVM是怎么实现invokedynamic的?(上)

一、问题引入 前不久,“虚拟机”赛马俱乐部来了个年轻人,标榜自己是动态语言,是先进分子。 这一天,先进分子牵着一头鹿进来,说要参加赛马。咱部里的老学究 Java 就不同意了呀,鹿又不是马...

飞鱼说编程
44分钟前
0
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部