JSON代码书写规范

HTML5学堂:在AJAX实现前后台数据交互的时候,通常使用JSON的数据格式,对于JSON来说,有严格的代码规范,一旦格式出问题,就无法显示出相应效果,同时还不在控制台报错。今天我们一起总结一下,JSON的书写有哪些规范。

JSON是什么?

在前后台的交互中,通常要互相传递消息,那就需要一种两方面都能“听懂的语言”,数据格式这里就代表语言。JSON就是前后台中都能理解的一种“语言”。

JSON的类型

JSON也有不同的组织形式,一种是JSON对象,一种为JSON数组。因此,在书写的代码当中,需要遵循基本的对象、数组的书写方式。

数组方式

    [{
        "city" : "BeiJing",
        "num" : 5
    }, {
        "city" : "ShenZhen",
        "num" : 5
    }, {
        "city" : "XiaMen",
        "num" : 5
    }]

对象方式

    {
        "user" : "H5course",
        "type" : "studyNetwork",
        "team" : [{
            "city" : "BeiJing",
            "num" : 5
        }, {
            "city" : "ShenZhen",
            "num" : 5
        }, {
            "city" : "XiaMen",
            "num" : 5
        }]
    }

书写JSON的注意事项

1 数组或对象之中的字符串必须使用双引号,不能使用单引号

2 对象的成员名称必须使用双引号

3 数组或对象最后一个成员的后面,不能加逗号

4 数组或对象的每个成员的值,可以是简单值,也可以是复合值。简单值分为四种:字符串、数值(必须以十进制表示)、布尔值和null(NaN, Infinity, -Infinity和undefined都会被转为null)。复合值分为两种:符合JSON格式的对象和符合JSON格式的数组。

不合法JSON的举例

案例1:使用单引号,不合法

    {'user' : 'HTML5学堂'}

案例2:属性名没有使用双引号,不合法

    {user : "HTML5学堂"}

案例3:使用16进制数字,不合法

    {"age" : 0x12}

案例4:使用undefined,不合法

    {"age" : undefined}

案例5:逗号使用错误,不合法

    [{
        "city" : "BeiJing",
        "num" : 5,
    }, {
        "city" : "ShenZhen",
        "num" : 5,
    }]

案例6:使用自定义函数或内置函数(如Date),不合法

    {
        "user" : "HTML5学堂",
        "ftn" : function(){
            console.log('不能这么用啊');
        }
    }

原文发布于微信公众号 - HTML5学堂(h5course-com)

原文发表时间:2016-01-04

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏PHP技术

Array数组函数(三)

array_keys — 返回数组中所有的键名 array_values — 返回数组中所有的值 array_key_exists — 检查给定的键名或索引是否...

3238
来自专栏程序员宝库

了解 dubbo 序列化,从 bug 开始

首先交代背景,前几天遇到一个小bug,由于其他系统的一个DTO子类和父类有一个字段名重复了,所以导致我set的子类字段那边拿不到值。改起来很简单嘛,让对面把子类...

763
来自专栏冰霜之地

从 JavaScript 作用域说开去

在电脑程序设计中,作用域(scope,或译作有效范围)是名字(name)与实体(entity)的绑定(binding)保持有效的那部分计算机程序。不同的编程语言...

643
来自专栏Java帮帮-微信公众号-技术文章全总结

Java基础-03(01).总结运算符、键盘录入、if语句

? 1:运算符(掌握) (1)算术运算符 A:+,-,*,/,%,++,-- B:+的用法 a:加法 b:正号 c:字符串连接符 C:/和%的区...

2564
来自专栏小二的折腾日记

LeetCode-8-String to Integer (atoi)

讲字符串转化为整型。当然过程很简单,但是需要考虑的乱七八糟的情况很多,空格和正负号之类的。提交了一百次,终于过了,但是看到别人的代码还是很气呀,还是得多写才行,...

663
来自专栏王磊的博客

SQL Server T-SQL高级查询

高级查询在数据库中用得是最频繁的,也是应用最广泛的。 Ø 基本常用查询 --select select * from student;   --all 查询所有...

2604
来自专栏Kevin-ZhangCG

SQL优化总结之二

1472
来自专栏小樱的经验随笔

C++STL中map容器的说明和使用技巧(杂谈)

1、map简介 map是一类关联式容器。它的特点是增加和删除节点对迭代器的影响很小,除了那个操作节点,对其他的节点都没有什么影响。对于迭代器来说,可以修改实值,...

3025
来自专栏C/C++基础

C++实现字符串的分割和替换

代码主要说明: (1)tmp.find(target):查找子串第一次出现的下标; (2)string::npos:表示未查找到子串时返回的数值。MSD...

912
来自专栏Micro_awake web

javascript(二):数据类型&数值

第一部分:数据类型 javascript数据类型通常来说是6种(ES6新增第七种Symbol类型) number:数值 string:字符串 boolean:布...

1815

扫描关注云+社区