现在越来越多的项目和开发插件等默认都会支持和使用json数据格式,作为数据保持、传输的一种方式。
说是其中一种,就标示还有好多其他格式。比如:最多是xml。webservice的标准数据格式。
不过由于json是JavaScript 对象表示法(JavaScript Object Notation),天生就对js支持很好,
所以现在很多的ajax等都使用json,反而会更好处理一些。

1、定义

什么是 JSON ?
1.JSON 指的是 JavaScript 对象表示法(JavaScript Object Notation)
2.JSON 是轻量级的文本数据交换格式
3.JSON 独立于语言 *
4.JSON 具有自我描述性,更易理解
* JSON 使用 JavaScript 语法来描述数据对象,但是 JSON 仍然独立于语言和平台。JSON 解析器和 JSON 库支持许多不同的编程语言。
w3c的标准说明如下:
JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式。 易于人阅读和编写。同时也易于机器解析和生成。 它基于JavaScript Programming Language, Standard ECMA-262 3rd Edition - December 1999的一个子集。 JSON采用完全独立于语言的文本格式,但是也使用了类似于C语言家族的习惯(包括C, C , C#, Java, JavaScript, Perl, Python等)。 这些特性使JSON成为理想的数据交换语言。

JSON建构于两种结构:

1.“名称/值”对的集合(A collection of name/value pairs)。不同的语言中,它被理解为对象(object),纪录(record),结构(struct),字典(dictionary),哈希表(hash table),有键列表(keyed list),或者关联数组 (associative array)。
2.值的有序列表(An ordered list of values)。在大部分语言中,它被理解为数组(array)。
这些都是常见的数据结构。事实上大部分现代计算机语言都以某种形式支持它们。这使得一种数据格式在同样基于这些结构的编程语言之间交换成为可能。

JSON具有以下这些形式:

对象是一个无序的“‘名称/值'对”集合。一个对象以“{”(左括号)开始,“}”(右括号)结束。每个“名称”后跟一个“:”(冒号);“‘名称/值' 对”之间使用“,”(逗号)分隔。

注意:如果后台直接传递对象来js,则是json格式的。参考文章:

[Jquery asp.net 后台数据传到前台js进行解析的办法说明]
[jquery ajax传递对象(数组)到后台并解析的实现]

数组是值(value)的有序集合。一个数组以“[”(左中括号)开始,“]”(右中括号)结束。值之间使用“,”(逗号)分隔。




注意:传递数据这个就好理解。其实就一个array。array和json直接的关系,请参考文章:

[javascript对象及数组 json的一些了解说明]

2、json标准:

json表示:我没有标准。哈哈。我说的标准是指什么样的格式化的字符串js才能解析成json?

下面这个json串就是正确的:

{
    "employees": [
        {
            "firstName": "Bill",
            "lastName": "Gates"
        },
        {
            "firstName": "George",
            "lastName": "Bush"
        },
        {
            "firstName": "Thomas",
            "lastName": "Carter"
        }
    ]
}

注意:

json串,在js中会解析成对象。其中对象的名称比如:
employees、firstName,必须用""或者''引起来才行。后面的value,如果是int和bool(js是不区分的哦),可以不用""或者''引起来,其他的字符串必须引起来,尤其是记得把时间日期引起来!

总结如下:

里面的是一个对象,如果是多个对象,则用逗号间隔,即{},{},这样就组成了一个对象序列,为了辨别开始和结束,则需要加上[]才能进行传递,则实际传递的形式应该是[{},{}],如果只要传递一个对象,则{}的形式就可以了。接下来就是对象属性的表现方式了,属性必须在""
里面,属性与值之间用:隔开,属性之间用,来分隔,如果属性的值为数组,则用[]包括起来,这样实际传递的数据格式可能有:1、{"属性1":值1,"属性2":值2},如果值为字符串,则也需要用""括起来(下同)。2、{"属性1":值1,"属性2":[值1,值2]},其中属性2是一个数组,包含
了值1和值2。3、{"属性1":值1,"属性2":{"属性a":值a,"属性b":[值b,值c]}},这个比较复杂了,属性2是个对象,这个对象由包含属性a和属性b,属性b又是一个数组包含值b和值c。我想这些应该是最基本了,其余的就是在此基础上的拓展而已。

实际中,要序列化对象,在.net中只要调用Newtonsoft.Json.JavaConvert.SerializeObject();函数即可

参考:

jquery ajax传递对象(数组)到后台并解析的实现 

https://www.jb51.net/article/40131.htm

3、json有这么多要求(其实不多了),我们怎么判断其正确性?

有办法,就是你打印出来字符串,自己的按照上面的结构对应一下,或者直接使用在线检验工具检验。

参考:http://www.kjson.com/
http://tool.oschina.net/codeformat/json

json的定义、标准格式及json字符串检验的更多相关文章

  1. AngularJS下$http服务Post方法传递json参数的实例

    下面小编就为大家分享一篇AngularJS下$http服务Post方法传递json参数的实例,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧

  2. JSON 入门教程基础篇 json入门学习笔记

    刚开始接触json的时候感觉有点奇怪的命名,后来使用才发现这么简单而且用好用,扩展性很强,这里就为大家整理一下

  3. jQuery+ajax读取json数据并按照价格排序示例

    这篇文章主要介绍了jQuery+ajax读取json数据并按照价格排序,涉及jQuery基于ajax动态获取json文件数据并进行数据遍历与排序的相关操作技巧,需要的朋友可以参考下

  4. Java接口返回json如何忽略特定属性

    这篇文章主要介绍了Java接口返回json如何忽略特定属性,通过SimplePropertyPreFilter方式(Json返回),这种写法,接口返回类型就要求是Json字符串类型,本文通过场景实例代码相结合给大家介绍的非常详细,需要的朋友可以参考下

  5. Javascript实用方法之json合并的场景分析

    这篇文章主要介绍了Javascript实用方法之json合并,jQuery 的“extend()”方法有两个原型:合并的方法,分别是浅合并和深度合并,本文通过代码给大家介绍的非常详细,需要的朋友可以参考下

  6. jQuery遍历json的方法分析

    这篇文章主要介绍了jQuery遍历json的方法,结合实例形式分析了jQuery针对json格式数据的遍历操作相关技巧,需要的朋友可以参考下

  7. Python requests.post()方法中data和json参数的使用方法

    这篇文章主要介绍了Python requests.post()方法中data和json参数的使用方法,文章围绕主题展开详细的内容介绍,具有一定的参考价值,感兴趣的小伙伴可以参考一下

  8. Java如何定义Long类型

    这篇文章主要介绍了Java如何定义Long类型,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教

  9. 使用JSON.toJSONString格式化成json字符串时保留null属性

    这篇文章主要介绍了使用JSON.toJSONString格式化成json字符串时保留null属性,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教

  10. python 包实现JSON 轻量数据操作

    这篇文章主要介绍了python 包实现JSON 轻量数据操作,文章介绍内容首先将对象转为json字符串展开主题详细内容需要的小伙伴可以参考一下

随机推荐

  1. js中‘!.’是什么意思

  2. Vue如何指定不编译的文件夹和favicon.ico

    这篇文章主要介绍了Vue如何指定不编译的文件夹和favicon.ico,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教

  3. 基于JavaScript编写一个图片转PDF转换器

    本文为大家介绍了一个简单的 JavaScript 项目,可以将图片转换为 PDF 文件。你可以从本地选择任何一张图片,只需点击一下即可将其转换为 PDF 文件,感兴趣的可以动手尝试一下

  4. jquery点赞功能实现代码 点个赞吧!

    点赞功能很多地方都会出现,如何实现爱心点赞功能,这篇文章主要为大家详细介绍了jquery点赞功能实现代码,具有一定的参考价值,感兴趣的小伙伴们可以参考一下

  5. AngularJs上传前预览图片的实例代码

    使用AngularJs进行开发,在项目中,经常会遇到上传图片后,需在一旁预览图片内容,怎么实现这样的功能呢?今天小编给大家分享AugularJs上传前预览图片的实现代码,需要的朋友参考下吧

  6. JavaScript面向对象编程入门教程

    这篇文章主要介绍了JavaScript面向对象编程的相关概念,例如类、对象、属性、方法等面向对象的术语,并以实例讲解各种术语的使用,非常好的一篇面向对象入门教程,其它语言也可以参考哦

  7. jQuery中的通配符选择器使用总结

    通配符在控制input标签时相当好用,这里简单进行了jQuery中的通配符选择器使用总结,需要的朋友可以参考下

  8. javascript 动态调整图片尺寸实现代码

    在自己的网站上更新文章时一个比较常见的问题是:文章插图太宽,使整个网页都变形了。如果对每个插图都先进行缩放再插入的话,太麻烦了。

  9. jquery ajaxfileupload异步上传插件

    这篇文章主要为大家详细介绍了jquery ajaxfileupload异步上传插件,具有一定的参考价值,感兴趣的小伙伴们可以参考一下

  10. React学习之受控组件与数据共享实例分析

    这篇文章主要介绍了React学习之受控组件与数据共享,结合实例形式分析了React受控组件与组件间数据共享相关原理与使用技巧,需要的朋友可以参考下

返回
顶部