文档章节

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

没有更多内容

加载失败,请刷新页面

加载更多

下一页

困扰当前数据中心管理的三大难题

导读 当企业发展到一定程度,或者之前的机房不能满足现在的数据中心使用时,企业会对数据中心进行迁移。那么在数据中心进行迁移的时候会遇到哪些风险呢?针对这些风险我们应该做出怎样的措施来...

问题终结者
9分钟前
0
0
设计模式:工厂方法模式(工厂模式)

工厂方法模式才是真正的工厂模式,前面讲到的静态工厂模式实际上不能说是一种真正意义上的设计模式,只是一种变成习惯。 工厂方法的类图: 这里面涉及到四个种类: 1、抽象产品: Product 2、...

京一
26分钟前
0
0
区块链和数据库,技术到底有何区别?

关于数据库和区块链,总会有很多的困惑。区块链其实是一种数据库,因为他是数字账本,并且在区块的数据结构上存储信息。数据库中存储信息的结构被称为表格。但是,区块链是数据库,数据库可不...

HiBlock
33分钟前
0
0
react native 开发碰到的问题

react-navigation v2 问题 问题: static navigationOptions = ({navigation, navigationOptions}) => ({ headerTitle: ( <Text style={{color:"#fff"}}>我的</Text> ), headerRight: ( <View......

罗培海
40分钟前
0
0
Mac Docker安装流程

久仰Docker大名已久,于是今天趁着有空,尝试了一下Docker 先是从docker的官网上下载下来mac版本的docker安装包,安装很简易,就直接拖图标就好了。 https://www.docker.com/products/docker...

writeademo
48分钟前
0
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部