Json 介绍 和 解析

Json 介绍和解析

一、Json介绍

JavaScript Object Notation

Js对象简谱,是一种轻量级的数据交换格式。

Json 的对象格式
{
    "name":"小火柴",
    "info":"5块钱一根"
}
另外,对象之中也可以再套对象
{
    "name":"张三",
    "age":"18",
    "firends":["法外","于谦","{"name":"赵四","age":"108"}"],
    "info":"这里是嵌套对象的演示案例"
}

二、Json 解析

Java与Json

目的:

Java中的对象 快速转换为Json格式的字符串。

Json格式的字符串,转换为Java的对象


目前只介绍两种工具

谷歌的Gson 和 阿里的FastJson

Gson

将对象转换为Json的字符串

//转换为Json字符串的步骤:
	1. 引入JAR包
	2. 需要转换Json字符串的位置编写如下代码即可:
		String json = new Gson().toJson(要转的对象);
		
案例:
	Book book = BookDao.find();
	String json = new Gson().toJson(book);
	System.out.println(json);
再举个栗子
// 1. 创建Gson对象
Gson g = new Gson();
// 2. 转换
Book book = new Book("100","金苹果","50块钱一个");
String s = g.toJson(book);
// 3.控制台打印出来
System.out.println(s);

将Json字符串转换为对象

1. 引入JAR包
2. 在需要转换Java对象的位置,编写如下代码:
	对象 = new Gson().fromJson(Json字符串,对象类型.class);
	
案例:
	String json = "{\"id\":1,\"name\":\"金苹果\",\"author\":\"张三\"}" 
	Book book = new Gson().fromJson(json,Book.class);
	System.out.println(book);
再举个栗子
//前提,已经创建好Book类,且定义了三个属性,id、name、info 均为String类型

// 1. 创建Gson 对象
Gson g = new Gson();
// 2. 转换 :{"id":"100","name":"金苹果","info":"5快钱1个"}  //这里的 id 为 String类型
Book book = g.fromJson({"id":"100","name":"金苹果","info":"5快钱1个"},Book.class);
// 3. 控制台打印出 该书 的id
System.out.println(book.getId());  
//1. 创建Gson对象
Gson g = new Gson();
//2. 转换
HashMap hashmap = g.fromJson({"id":"100","name":"金苹果","info":"5快钱1个"},HashMap.class);
System.out.println(hashmap.get("id");
                   
// 3. 如果Json 对象中存在一个[11,22,33,44] ArrayList对象,那么如何取 11,22,33,44 
HashMap hashmap = g.fromJson({"id":"100","name":"金苹果","info":"5快钱1个","page":["11","22","33","44"]},HashMap.class);
List page = (List)hashmap.get("page");
System.out.println(page.get(1));  // 输出结果22       因为11是0下标 ,22 是1 下标
fastJson

对象转换成Json 格式

Book book = new Book("1002","中华上下五千年","500块一本");
// 转换
String json = JSON.toJSONString(book);
// 控制台打印
System.out.println(json);

将Json 转换成对象

Book book = JSON.parseObject({"id":"100","name":"金苹果","info":"5快钱1个"},Book.class);
// 控制台打印结果
System.out.println(book.getId());

// 转换数组 "["123","234","345"]"
List<String> strings = JSON.parseArray("["123","234","345"]",String.class);
System.out.println(strings.get(1));  // 234    234 为下标为 1
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值