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 条评论
登录 后参与评论

相关文章

来自专栏开发与安全

从零开始学C++之模板(二):类模板、Stack的类模板实现(自定义链栈方式,自定义数组方式)

一、类模板 类模板:将类定义中的数据类型参数化 类模板实际上是函数模板的推广,可以用相同的类模板来组建任意类型的对象集合 (一)、类模板的定义 templ...

2130
来自专栏HTML5学堂

原生JS | 值类型与引用类型变量

HTML5学堂-码匠:在JavaScript中,存在着两种不同的变量类型,一种是值类型变量,一种是引用类型变量。其中数组、对象、函数都属于引用类型变量,数值、布...

3159
来自专栏飞雪无情的博客

Go语言参数传递是传值还是传引用

其实对于传值和传引用,是一个比较古老的话题,做研发的都有这个概念,但是可能不是非常清楚。对于我们做Go语言开发的来说,也想知道到底是什么传递。

1433
来自专栏Ryan Miao

String.split()用法以及特殊分隔符注意,ps:|

转载:http://www.cnblogs.com/mingforyou/archive/2013/09/03/3299569.html 在java.lang包...

2979
来自专栏Golang语言社区

Golang 语言--map 用range遍历不能保证顺序输出

按照之前我对map的理解,map中的数据应该是有序二叉树的存储顺序,正常的遍历也应该是有序的遍历和输出,但实际试了一下,却发现并非如此,网上查了下,发现从Go1...

4168
来自专栏Ryan Miao

Java String.split()用法小结

在java.lang包中有String.split()方法,返回是一个数组 我在应用中用到一些,给大家总结一下,仅供大家参考: 1、如果用“.”作为分隔的话,必...

33411
来自专栏iOS122-移动混合开发研究院

【读书笔记】A Swift Tour

素材:A Swift Tour 推荐下载Playground:Download Playground objc 自己较为熟悉,想熟悉下风头正劲的 swift。就...

3548
来自专栏十月梦想

JavaScript中类的创建以及类的传参

在之前(ES2015)以前我们常用构造函数来搞定一个事物类,通过new 这个构造函数实现类的功能!在ES6(ES2015)中已经可以使用类,下面我们看一下类如何...

842
来自专栏java达人

js的回调函数详解

在Javascript中,函数是第一类对象,这意味着函数可以像对象一样按照第一类管理被使用。既然函数实际上是对象:它们能被“存储”在变量中,能作为函数参数被传递...

2575
来自专栏Golang语言社区

Go语言基本语法

前面已经看到了Go程序的基本结构,所以这将是很容易理解Go编程语言等基本构建块。 Go令牌 Go程序包括各种令牌和令牌可以是一个关键字,一个标识符,常量,字符串...

2716

扫码关注云+社区