Java初学——浅析JSON

1. JSON是什么?

官方:
         JSON(JavaScript Object Notation:JavaScript 对象表示法), JS对象简谱 , 是一种轻量级的数据交换格式,能够在服务器之间交换数据,它基于 javascript 语法的子集,即数组和对象表示。简单的来说json本身是一串字符串,只是它有固定格式的字符串,符合这个数据格式要求的字符串,我们称之为JSON。
  JSON是一个字符串,一个有规则的字符串。(重点)然后它的表现形式是键值对的。非常类似Java语言里的Map。

通俗:
        计算机高级语言有很多种,如:Java,Python,C#,C++等。JSON就类似于一种通用语言,可以在支持不同语言的交流。
打比方:
        中国人和挪威人交流,中国说中文,挪威说挪威语,所以它们之间需要一个既懂中文又懂挪威语的人;同理中国人和法国人交流,它们之间也需要一个既懂中文和法语的人。此时,如果我们选择将英语作为通用的交流语言,各个国家都配置一个既懂本国语言,又懂英语的翻译官,就可以实现与其他国家之间的无障碍交流。JSON就相当于其中的通用英语。
  现在,可以只学一种编程语言,外加数据交互语言–JSON,就可以与其他任何语言的程序进行通讯。


2. 作用、优点与使用场景

作用:
  将Java中的对象 快速的转换为 JSON格式的字符串。
  将JSON格式的字符串, 转换为Java的对象。

优点:

  • 简洁、简单、体积小;
  • 上手容易,高效;
  • 跨语言。目前移动端Android、IOS一般项目构造都是其他语言提供接口(JSON方式),移动端读取接口的方式开发;
  • 获得了当今大部分语言的支持。JSON采用兼容性很高的文本格式,同时也具备类似于C语言体系的行为。JSON作为数据是目前网络中主流的数据传输格式之一,应用十分广泛。

使用场景:

  • 目前移动端Android、IOS一般项目构造都是其他语言提供接口(JSON方式),移动端读取接口的方式开发;
  • JSON不管是在Web开发还是服务器开发中是相当常见的数据传输格式,JS对JSON的支持好很多,与浏览器的交互中通常都用JSON。

JavaScript

  简称JS,术语一点说,JS是一种页面脚本,通过执行程序脚本片段,我们可以对页面及页面上的元素进行操作,实现特定的功能与效果。有一些东西,我们用高级编程语言是实现不了的,而用JS,可能几行代码就可搞定。比如,显示当前系统时间等。

3. JSON的基本格式

1. 对象格式:

{							//大括号
	 "name":"金苹果",  		//键值对
	  "info":"种苹果" 
}

说明:
  一个对象, 由一个大括号表示;
  大 括号中 描述对象的属性 . 通过键值对来描述对象的属性 (可以理解为, 大括号中, 包含的是一个个的键值对) ;
  格式:键与值之间使用冒号连接, 多个键值对之间使用逗号分隔.,最后一个键值对不需要逗号;
  键值对的键 应使用引号引住 (通常Java解析时, 键不使用引号会报错. 而JS能正确解 析)
键值对的值, 可以是JS中的任意类型的数据。

2. 数组格式:

{
	 "name":"小美", 
	 "age":18,
	 "pengyou":["张三","李四","王二","麻子",{ 	//数组里面嵌套对象
	 			"name":"小明",
	 			"info":"像匹野马一样狂奔在技术钻研的道路上" 
	 		}],
	 		    "heihei":{ 		//一个heihei对象
	 		    	"name":"大长刀",
	 		    	"length":"40m" 
	 		    } 
}

说明:
  由一个中括号来表示定义,元素间用逗号隔开,
  在JSON格式中可以与对象互相嵌套 [元素1,元素2…]

4. 常用JSON解析库Gson,FastJson

库:
  在Java开发过程中如果需要使用json,必须得到外部支持,可以引入相关的jar包。
  jar包就是别人已经写好的一些类,然后将这些类进行打包,你可以将这些jar包引入你的项目中,然后就可以直接使用这些jar包中的类和属性以及方法。
  库则是jar包的集合。

Gson
  Gson是解析JSON的主流类库之一。最初由Google自行研发而来,公开发布第一版后被许多公司或用户应用。Gson是目前功能最全的Json解析神器,它的应用主要为toJson与fromJson两个转换函数,无依赖,不需要例外额外的jar,能够直接跑在JDK上。性能比较稳定。

FastJson
  Fastjson是解析JSON的主流类库之一。由阿里巴巴公司开发。Fastjson是一个Java语言编写的高性能的JSON处理器,无依赖,不需要例外额外的jar,能够直接跑在JDK上。FastJson采用独创的算法,将parse的速度提升到极致,超过所有json库。用的比较多。

5. 举个栗子

Gson

将对象转换为JSON字符串


1. 引入JAR包 ![](https://img-blog.csdnimg.cn/20200828184511550.png#pic_center)
2. 在需要转换JSON字符串的位置编写如下代码:: ```java String json = new Gson().toJSON(要转换的对象); ```

案例:

		Book b = new Book("001","小姑凉","吃盐焗鸡腿");   //初始化Book类对象b
  		String json = new Gson().toJson(b);    //将b转成JSON
  		System.out.println(json);

结果:


将JSON字符串转换为对象

  1. 引入JAR包

  2. 在需要转换Java对象的位置, 编写如下代码:

     对象 = new Gson().fromJson(JSON字符串,对象类型.class); 
    

案例:

		String json = "{"id":"001","name":"小姑凉","info":"吃盐焗鸡腿"}";
 		Book book = new Gson().fromJson(json, Book.class); 		
		System.out.println(book);

结果:
在这里插入图片描述

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值