JSON使用手册

初识JSON

 简介:	
		JSON:	JavaScript Object Notation	JS对象简谱 , 是一种轻量级的数据交换格式.

对象格式

一本书
	书名
	简介

各语言对比(没有对比就没有伤害)

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”:18,
“friend”:[“小小”,“李明”,“李华”,“小丽”,{
“name”:“小菜”,
“info”:“一条菜狗”
}],
“father”:{
“name”:“大明”,
“length”:“172cm”
}
}

Java与JSON

有什么用?
将Java中的对象快速的转换为JSON格式的字符串.
将JSON格式的字符串, 转换为Java的对象.

Gson

 将对象转换为JSON字符串

转换JSON字符串的步骤:

  • 1.引入JAR包

  • 2.在需要转换JSON字符串的位置编写如下代码即可: String json = new Gson().toJSON(要转换的对象);

将JSON字符串转换为对象:

  • 1.引入JAR包

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

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

案例:
在这里插入图片描述

public static void main(String[] args) {
        //  对象转JSON
        //1.    创建Gson对象
        Gson gson = new Gson();
        //2.    转换
        BookJSON book = new BookJSON("1001", "金瓶梅", "潘金莲,瓶儿,春梅");
        // 使用匿名对象
        //String s1 = new Gson().toJson(book);
        String s = gson.toJson(book);
        //{"id":"1001","name":"金瓶梅","info":"潘金莲,瓶儿,春梅"}
        System.out.println(s);
        System.out.println("-----------");

        //  JSON转对象
        //1.    创建Gson对象
        Gson g = new Gson();
        //2.    转换 :格式:fromJson({"key":"value","key":"value"}, 类名.class)  //java key不加""会解析不了
        //{"id":"1001","name":"金瓶梅","info":"潘金莲,瓶儿,春梅", "page":["第一页内容", "第二页内容"]}
        BookJSON b = g.fromJson("{\"id\":\"1001\",\"name\":\"金瓶梅\",\"info\":\"潘金莲,瓶儿,春梅\"}", BookJSON.class);
        System.out.println(b.getId());//1001
        //转换成Map集合
        HashMap data = g.fromJson("{\"id\":\"1001\",\"name\":\"金瓶梅\",\"info\":\"潘金莲,瓶儿,春梅\", \"page\":[\"第一页内容\", \"第二页内容\"]}", HashMap.class);
        System.out.println(data.get("page"));//[第一页内容, 第二页内容] 不是数组是ArrayList集合
        System.out.println(data.get("page").getClass());//class java.util.ArrayList
    }

FastJson

 将对象转换为JSON字符串

转换JSON字符串的步骤:

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

将JSON字符串转换为对象

  • 1.引入JAR包

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

    类型 对象名=JSON.parseObject(JSON字符串, 类型.class);

    List<类型> list=JSON.parseArray(JSON字符串,类型.class);

案例:

public static void main(String[] args) {
        BookJSON book = new BookJSON("1002", "红楼梦", "假宝玉,薛宝钗,林黛玉");
        //1.   对象 转换成 JSON
        String json = JSON.toJSONString(book);
        System.out.println(json);
        System.out.println("--------------");

        //1.    JSON 转换成 对象{"1002", "红楼梦", "假宝玉,薛宝钗,林黛玉"}
        BookJSON object = JSON.parseObject("{\"id\":\"1002\",\"info\":\"假宝玉,薛宝钗,林黛玉\",\"name\":\"红楼梦\"}", BookJSON.class);
        System.out.println(object);
        String str = JSON.parseObject("{\"id\":\"1002\",\"info\":\"假宝玉,薛宝钗,林黛玉\",\"name\":\"红楼梦\",\"other\":[\"西游记\", \"三国演义\", \"水浒传\"]}", String.class);
        System.out.println(str);

        //      JSON 转换成 ArrayList集合 ["西游记", "三国演义", "水浒传"]
        List<String> array = JSON.parseArray("[\"西游记\", \"三国演义\", \"水浒传\"]", String.class);
        System.out.println(array.getClass());//class java.util.ArrayList

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值