当前位置: 代码迷 >> 综合 >> Introduction to Java Script Object Notation (JSON)
  详细解决方案

Introduction to Java Script Object Notation (JSON)

热度:76   发布时间:2024-01-20 02:12:48.0

Jason 入门指南 (Introduction to Java Script Object Notation)

最近需要跨语言进行一些数据交换,基本数据类型数组之类的交换起来太麻烦。

统一将数据编码成Jason字符串进行交换解析。因此研究了一下Json的语法。

这里是使用C++和C#直接传递类的复杂的参数。看了下这本书 (Introduction to Java Script Notation By Lindsay Bassert (O'Reilly). Coppyright 2015 Lindsay Bassett, 978-1-491-92948-3)

另外关于Jason的应用展开会设计大量的JavaScript, NodeJs, JQuery这里不详细讨论。仅研究Jason作为一种数据交换格式。也就是一到五部分。

而6-9部分主要是讲解如何应用Jason的。

一,什么是Json?

Json 是一种数据交换格式

常用于在不同平台直接交换数据,另一种常用的数据交换格式是XML。用于在不同的系统之间交换数据。

Json这种数据交换格式是与语言无关的(不依赖具体语言和系统架构)

虽然Json的全称是JavaScript Object Notation,也就是JavaScript语言的一个子集。但是他作为一种通用的数据交换格式,学习JSON可以完全和JavaScript分离开来。

作者认为可以这样理解JSON(Object Notation 去掉JavaScript的名字)用于表示对象的符号,(object是一种通用的编程概念和具体的语言无关。)

重要的项目和概念

JSON

JavaScript Object Notation

Notation

A System of Characters for representing data such as numbers or elements

Data interchange format

Text used to exchange data between platforms or systems

Portability

Transferring information between platforms in a way that is compatible with both systems


Concepts

JSON is a data interchange format.

JSON is programming language independent(JavaScript is not required to use it)

JSON is based on the object literal notation of JavaScript(emphasis on the word "notation")

JSON represents data in a way that is friendly to universal programming concepts.



二,Json语法

一个使用Jason表示鞋子属性的例子

{"brand":	"Crocs","color":	"pink","size":		9,"hasLaces":	false
}
attributes/properties 表现出名字 值的键值对。

由于JSON主要用于数据交换,重点在于数据。因此不包含函数的定义(definition of function)

名-值 对(Name-Value Pairs)

通常也叫键值对,属性值对,或者字段值对。

"animal": "horse"

JSON语法

定义名称的时候,不要使用特殊符号只是用alpha字符。考虑跨语言兼容问题。

值的部分,字符型采用双引号。

其他类型不需要双引号包括:

数值

布尔值

数组

对象

null


一个大括号包含起来的内容被称为一个对象(object)

{ "animal" : "cat" }

每个名称-值对用逗号分隔

{ "animal": "cat", "color": "orange"}


一个错误的例子

{title :	"This is my title",body : "This is the body."
}

名称没有使用双引号。


另一个错误的例子

{'title' :	'This is my title','body' : 'This is the body.'
}
名称和字符串数值使用单引号。


正确的定义如下:

{"title" : "This is my title","body" : "This is the body."
}

推荐一些自动格式化Json的工具:

https://jsonformatter.curiousconcept.com/

这个反应很慢不是太好用。


http://www.jsoneditoronlin

  相关解决方案