Java——JSON

 

目录

JSON

1.简介

2.结构与格式

3.实例

 

在Java中使用JSON

1.在Java中用产生JSON数据

2.JSON数据在Java中转化为对象


JSON

1.简介

JSON全称为JavaScript Object Notation,即JS对象表示法,是一种 轻量级的文本数据交换格式。JSON数据格式是的应用程序可以通过RESTful API(REST 指的是一组架构约束条件和原则,满足这些约束条件和原则的应用程序或设计就是 RESTful)等方式再网络上进行数据通信。JSON不局限于某项技术,本身非私有,且具有可移植性。所有现代编程语言都可产生(序列化)和读取(反序列化)JSON数据。

2.结构与格式

JSON由对象({...})、数组([...])、名称-值("属性名":属性值,"属性名":属性值,...)对这三种结构体系组成。

JSON中的格式要求:一个对象, 由一个大括号表示({...}==对象);大括号中描述对象的属性,通过键值对来描述对象的属性("属性名":属性值,"属性名":属性值,...)。可以将 属性-属性值 看成键值对,键与值之间使用冒号连接, 多个键值对之间使用逗号分隔,键值对的键应使用引号引住 (通常Java解析时, 键不使用引号会报错,JS能正确解析。) ,键值对的值, 可以是JS中的任意类型的数据。

3.实例

以一本书为对象,书名、简介为属性做例子,格式如下:

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中使用JSON

1.在Java中用产生JSON数据

使用GSON,将对象转换为JSON字符串步骤:

1) 引入 JAR
2) 在需要转换 JSON 字符串的位置编写该代码 :
String json = new Gson().toJSON(要转换的对象);

案例:

Book b = BookDao.find();
String json = new Gson().toJson(b);
System.out.println(json);

使用FastJson,将对象转换为JSON字符串步骤:

1) 引入 JAR
2) 在需要转换 JSON 字符串的位置编写如下代码即可 :
String json=JSON.toJSONString(要转换的对象);

案例:

Book b = BookDao.find();
String json=JSON.toJSONString(b);
System.out.println(json);

 

2.JSON数据在Java中转化为对象

使用GSON,将JSON字符串转换为对象:

1) 引入 JAR
2) 在需要转换为java对象 的位置编写该代码 :
对象 = new Gson().fromJson(JSON字符串,对象类型.class);

案例:

String json = "{\"id\":1,\"name\":\"金苹果\",\"author\":\"yue \",\"info\":\"信息内容\",\"price\":198.0}"; 
Book book = new Gson().fromJson(json, Book.class); 
System.out.println(book);

使用FastJson,将对象转换为JSON字符串步骤:

1) 引入 JAR
2) 在需要转换为java对象 的位置编写如下代码即可 :
类型 对象名=JSON.parseObject(JSON字符串, 类型.class); 
或 
List<类型> list=JSON.parseArray(JSON字符串,类型.class);

案例:

String json = "{\"id\":1,\"name\":\"金苹果\",\"author\":\"yue \",\"info\":\"信息内容\",\"price\":198.0}"; 
Book book = JSON.parseObject(json, Book.class); 
System.out.println(book);

 

 

 

 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值