资讯专栏INFORMATION COLUMN

JSON的理解

banana_pi / 845人阅读

摘要:一般数据类型有以下几种类型区分数据类型,标量,也就是一个多带带的字符串或数字,序列,也就是若干个相关的数据按照一定顺序并列在一起,又叫做数组,映射,也就是一个名值对的数据类型有以下几种,,,,,,,支持的格式没有和支持类型但不含语法规则,数

一般数据类型有以下几种类型(区分JS数据类型):
1,标量(scalar),也就是一个多带带的字符串(string)或数字(number)
2,序列(sequence),也就是若干个相关的数据按照一定顺序并列在一起,又叫做数组
3,映射(mapping),也就是一个名/值对(Name/value)

JS的数据类型有以下几种:
1,String,
2,Number
3,Boolean
4,Undefined
5,Null
6,Symbol
7,Object->Array,Function,Date,Error,...

JSON 支持的格式没有symbol和undefined,支持Number类型但不含NaN;

JSON 语法规则:

1,数据在名称/值对中
2,数据由逗号分隔
3,花括号保存对象
4,方括号保存数组
JSON的名称必须是用“ ”包含的也就是“string”;

所以JSON只是一个数据格式,这种格式也分三种:

1,JSON字符串 可以这么写但不是合法的JSON数据(目的只是作为字符串便于传递)
下面数组和对象要转换为这种格式

var json = "{"name" : "obama","age": 73}";       

2,JSON数组

var jsonArray = ["obama","bush","cliton",null];

3,JSON对象

var jsonObj = {
    "name" : "obama",
    "age" : 73
}

以上三种都是JSON格式的数据类型;

但在一般程序中作为数据传递的话,一般都是作为文本Text传递的较多,也就是字符串,因此有专门的方法,

var json = "{"name" : "obama","age" : 73 }";
    //如果直接使用的话,得到的只是一个字符串,因此需要转化为Object;
    //json.name  -> undefined
    
var jsonStr = eval("("+json+")");
    
    //之所以在eval函数的内部在添加一个括号,如果没有的话,函数会直接解析掉外部的大括号,最终报错,这不是一个好的方法;
    //使用es5的方法
    
var jsonStr = JSON.parse(json);    //{"name" : "obama","age" : 73}
 jsonStr.name = "obama";

    //或者将JSON对象转换为字符串,便于使用
var jsonObj = {
    "name" : "obama",
    "age" : 73
}
var jsonStr = JSON.stringify(jsonObj);    //"{"name":"obama","age":73}";

typeof jsonStr ==="string"    //true

//需要注意的是使用JSON方法得到的都是深度拷贝,是两个不同的数据,

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/88592.html

相关文章

  • 深入理解JavaScript系列11:根本没有“JSON对象”这回事

    摘要:更多资料如果你想了解更多关于的资料,下面的连接对你绝对有用关于本文本文转自大叔的深入理解系列。深入理解系列文章,包括了原创,翻译,转载,整理等各类型文章,原文是大叔的一个非常不错的专题,现将其重新整理发布。 前言 写这篇文章的目的是经常看到开发人员说:把字符串转化为JSON对象,把JSON对象转化成字符串等类似的话题,所以把之前收藏的一篇老外的文章整理翻译了一下,供大家讨论,如有错误,...

    darryrzhong 评论0 收藏0
  • 傻傻弄不清楚JSON?

    摘要:不同的语言中,它被理解为对象,纪录,结构,字典,哈希表,有键列表,或者关联数组值的有序列表。数组是值的有序集合。在前后端分离的大势是前段和后端的一种数据交换形式,不仅仅是前后端的一种数据交换形式,还是系统之间进行数据交换的一种形式。 作为一名开发人员,我们时常跟JSON打交道,但对于JSON却有这不少的疑惑,但平常也就是停留在使用的角度上。今天我们就来走进JSON。 我们首先引入两个问...

    xialong 评论0 收藏0
  • 简单理解Javascript各种异步流程控制方法

    摘要:所以仅用于简化理解,快速入门,依然需要阅读有深入研究的文章来加深对各种异步流程控制的方法的掌握。 原文地址:http://zodiacg.net/2015/08/javascript-async-control-flow/ 随着ES6标准逐渐成熟,利用Promise和Generator解决回调地狱问题的话题一直很热门。但是对解决流程控制/回调地狱问题的各种工具认识仍然比较麻烦。最近两天...

    makeFoxPlay 评论0 收藏0
  • 快速理解和使用 ES7 await/async

    摘要:是最重要特性之一,它是目前为止最佳的异步解决方案了。虽然没有在中录入,但很快就到来,目前已经在阶段。表示暂停,表示执行下一步,如果你不了解也没关系,可以忽略它直接学习。 await/async 是 ES7 最重要特性之一,它是目前为止 JS 最佳的异步解决方案了。虽然没有在 ES2016 中录入,但很快就到来,目前已经在 ES-Next Stage 4 阶段。 直接上例子,比如我们需要...

    Kross 评论0 收藏0
  • JSON:如果你愿意一层一层剥开我心,你会发现...这里水很深——深入理解JSON

    摘要:说句玩笑话,如果是基于的,可能就叫了,形式可能就是这样的了,如果这样,那么可能现在是和比较密切了。此外,还有一个函数,我们较少看到,但是它会影响。 我们先来看一个JS中常见的JS对象序列化成JSON字符串的问题,请问,以下JS对象通过JSON.stringify后的字符串是怎样的?先不要急着复制粘贴到控制台,先自己打开一个代码编辑器或者纸,写写看,写完再去仔细对比你的控制台输出,如果有...

    Baaaan 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<