有关JSON和介绍和使用

本文介绍了JSON(JavaScript Object Notation),一种轻量级的数据交换格式,它比XML更小、更快且易于解析。JSON独立于语言,支持多种编程语言,具有自我描述性。文章详细对比了JSON与其他语言(如Java、JavaScript、XML)的语法,并提供了序列化和反序列化的示例,包括使用GSON和Fastjson库进行JSON操作的方法。
摘要由CSDN通过智能技术生成

1.什么是JSON?

  • JSON: JavaScript Object Notation JS对象简谱 , 是一种轻量级的数据交换格式.
  • JSON 比 XML 更小、更快,更易解析。
  • JSON 独立于语言:JSON 使用 Javascript语法来描述数据对象,但是 JSON 仍然独立于语言和平台。JSON 解析器和 JSON 库支持许多不同的编程语言。 目前非常多的动态(PHP,JSP,.NET)编程语言都支持JSON。
  • JSON 具有自我描述性,更易理解

2.语法格式

相较于Java、JavaScript和xml,json的语法格式显得更加轻便,因此得到大多数年轻程序员的喜爱,四种语言格式对比如下:


	
	
#java#

class Book{

    private String name;

    private String info;数组格式
案例

    get/set...
}

    Book b = new Book();

    b.setName(“白雪公主和大灰狼”);

    b.setInfo(“他们幸福地生活在了一起”);
—————————————————————————————————————————————
#js#

    var b = new Object();

    b.name = "白雪公主和大灰狼";

    b.info = "他们幸福地生活在了一起";
——————————————————————————————————————————————
#XML#
<book>

    <name>白雪公主和大灰狼</name>
    <info>他们幸福地生活在了一起</info>
</book>

——————————————————————————————————————————————
#JSON#
{
"name":"白雪公主和大灰狼",
"info":"他们幸福地生活在了一起"
}

一个对象, 由一个大括号表示。括号中 描述对象的属性 . 通过键值对来描述对象的属性
(可以理解为, 大括号中, 包含的是一个个的键值对.)

 格式:
键与值之间使用冒号连接, 多个键值对之间使用逗号分隔.
键值对的键 应使用引号引住 (通常Java解析时, 键不使用引号会报错. 而JS能正确解
析.)
键值对的值, 可以是JS中的任意类型的数据

除此之外,还有数组的格式,如下:

#在JSON格式中可以与对象互相嵌套  [元素1,元素2...]

{
"name":"爷爷",
"age":88,
"huluwa":["大娃","二娃","三娃","四娃","五娃","六娃","七娃"{
"name":"穿山甲",
"info":"会刨洞"
}],
"妖精":{
"name":"蜈蚣精",
"hobby":"蛇精"
}
}

 

3.如何使用JSON?

使用JSON可以有两种途径,一个是导入谷歌的GSON.jar文件到IDEA的project下的lib包,二是导入阿里巴巴的fastjson.jar文件,执行方式同前步骤。

jar文件百度网盘:https://pan.baidu.com/s/1SjR8xXnNz40ERILdBgpQzA 提取码:1vfc

以GSON为例:接下来,你可以通过序列化将对象转换为JSON字符串

#添加一个Book的对象层
Book b = BookDao.find();
String json = new Gson().toJson(b);
System.out.println(json);

也可以反序列化将JSON字符串重新转换为对象

#将显示的JSON字符放入等于号右边的双引号内会自动形成下面格式

String json = "{\"id\":1,\"name\":\"白雪公主和大灰狼\",\"author\":\"小矮人
\",\"info\":\"他们最终幸福地生活在一起\",\"price\":299.0}";

Book book = new Gson().fromJson(json, Book.class);
System.out.println(book);

 

以fastjson为例,序列化:

转换JSON字符串的步骤:

String json=JSON.toJSONString(要转换的对象);

案例:
Book b = BookDao.find();
String json=JSON.toJSONString(b); #区别点在此 GSON是新new了一个GSON对象的toJson()方法
System.out.println(json);

反序列化

类型 对象名=JSON.parseObject(JSON字符串, 类型.class);
或
List<类型> list=JSON.parseArray(JSON字符串,类型.class);
案例:

String json = "{\"id\":1,\"name\":\"白雪公主和大灰狼\",\"author\":\"小矮人
\",\"info\":\"他们最终幸福地生活在一起\",\"price\":299.0}";

Book book = JSON.parseObject(json, Book.class);
System.out.println(book);

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

红烧西米露

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值