json数据是我们开发中最常见的数据格式了,一般来说,数据传输都是通过json数据或者xml格式数据序列化然后通过网络传输,在接收端进行反序列化将二进制数据转换为json / xml

写这篇博客的目的是巩固一下知识,很新手向。过去在面试时被问到有关json是什么这个问题时,我的回答显得十分的简陋,只是简单地回了一句:“json就是键值对形式地字符串”,因为我当时对json地认知就是以键值对形式如"name":"zhangsan"这样形式存在的字符串

这里先不提json的转换,既然说基础,就先从最基础的说起,那么,什么是json?json数据有哪些常见的形式呢?

先来回答第一个问题:

  • JSON全称:JavaScript Object Notation(JavaScript 对象表示法)
  • JSON 是轻量级的文本数据交换格式JSON 比 XML 更小、更快,更易解析。
  • JSON 独立于语言 *
  • JSON 具有自我描述性,更易理解

上面描述的是json的概念解释,要概括的话,json是一种数据格式,同字符串,xml一样都是一种数据格式,计算机传输数据基于二进制,要传输数据就要先转换成二进制数据,二进制数据中包含被序列化之前的格式信息,按照 要求的格式再反序列化

灵魂画手出动!

java基础-JSON格式

那么json有哪些常见形式呢?

在编辑器中我们常见的格式是大概分两种,一种是json对象,一种是json数组

在idea编辑器界面,json对象看起来是这样的(因为都是字符串)

"{'name':'zhangsan','age':15,'sex':'male'}"

或者这样的"{\"name\":\"zhangsan\",\"age\":13,\"name\":\"zhangsan\"}"   二者在视觉上有点区别,因为在java中位于双引号内部的引号前面需要加转义符\,二者含义完全一样,标识明显,都是以花括号开头和结尾,这一注意数字类型数据值是不加引号的,如age字段

 

json数组是这样的

"[\"zhangsan\",\"lisi\",\"wangwu\"]"  或者这样的"['zhangsan','lisi','wangwu']"  或者数组内可以是json对象"[{\"name\":\"zhangsan\",\"age\":13,\"name\":\"zhangsan\"},{\"name\":\"zhangsan\",\"age\":13,\"name\":\"zhangsan\"}]"  ,同理,这里的转义符可以换为单引号

数组内部可以包含多个对象,对象内部可以有多个属性,跟java对象一样,json对象的属性也可以是json数组

"{
\"name\":\"Bill Gates\",
\"age\":62,
\"cars\":[ \"Porsche\", \"BMW\", \"Volvo\" ]
}"

合理利用json对象和json数组,可以表示很复杂的数据结果,和java中的对象嵌套一样

到这里你就可以发现,我之前说json是键值对的说法是不准确的,json可以是json数组,可以是json对象,但不一定是键值对

那么,聪明的你一定可以发现,json数组和java数组还有List很像,json对象和java对象很像,json对象内部的键值对和Map数据很像,没错,它们都是可以相互转换的,借助阿里巴巴的fastjson就可以做到,很快捷

在我们java后台看来,无论形式多复杂,json都是一个字符串,它最常见的用途就是作为web传输数据的工具,前端将json数据转换为javascript对象在网页中使用该数据

 

相关文章:

  • 2022-12-23
  • 2021-11-27
  • 2021-05-16
  • 2021-10-24
  • 2021-11-22
  • 2022-12-23
  • 2022-12-23
猜你喜欢
  • 2022-01-07
  • 2022-03-03
  • 2022-12-23
  • 2021-09-20
  • 2022-12-23
  • 2021-12-06
相关资源
相似解决方案