JavaSE之JSON

Json

1 语法格式

案例:

{
  "name": "陈xx",
  "age": 18,
  "朋友": [
    "张三",
    "李四",
    "王五",
    "赵六",
    {
      "name": "王xx",
      "info": "非常要好的朋友"
    }
  ]
}

上面的案例:

1 []中括号代表的是一个数组;
2 {}大括号代表的是一个对象
3 双引号“”内表示的是属性值
4 冒号:代表的是前后之间的关系,冒号前面是属性的名称(相当于key),后面是属性的值(相当于value),这个值可以是基本数据类型,也可以是引用数据类型。

2 主流的Json包使用

2.1 基本步骤

转换JSON的步骤:

   1. 导入JAR包 
   2. 在需要转换JSON字符串的位置使用相关类的转换方法

接下来以Book类举例:

public class Book {
    private String id;
    private String name;
    private String info;
    
 	// 省略getset,有参无参构造
}

2.2 Gson

  • 将对象转换为JSON字符串
Book b = BookDao.find(); 
String json = new Gson().toJson(b); 
System.out.println(json);    
  • 将JSON字符串转换为对象
String json = "{\"id\":\"1\",\"name\":\"Java从入门到入土\",\"info\":\"?????\"}";
Book book = new Gson().fromJson(json, Book.class);
System.out.println(book);

2.3 FastJson

  • 将对象转换为JSON字符串
Book b = BookDao.find();
String json = JSON.toJSONString(b);
System.out.println(json);
  • 将JSON字符串转换为对象
String json = "{\"id\":\"1\",\"name\":\"Java从入门到入土\",\"info\":\"?????\"}";
Book book = JSON.parseObject(json, Book.class);
System.out.println(book);

2.4 集合类型转换

FastJson为例:(Gson差不太多,就是只要new一个Gson对象,用这个对象就能对Json进行转换了.)

public class Demo2 {
    public static void main(String[] args) {
		// List 类型: 
        List<Book> books = new ArrayList<>();

        books.add(new Book("1","小说1","不知道写的什么"));
        books.add(new Book("2","小说2","看不懂"));
        books.add(new Book("3","小说3","写的啥玩意"));

        String json1 = JSON.toJSONString(books);
        System.out.println(json1);
		/*
		json1:(稍微比较精简一点的格式,正常格式行数应该更多,当然在String里面是没有这种格式的)
		        [
		            {"id":"1","info":"不知道写的什么","name":"小说1"},
		            {"id":"2","info":"看不懂","name":"小说2"},
		            {"id":"3","info":"写的啥玩意","name":"小说3"}
		        ]
		 */
        // JSON转换成List
        List<Book> bookList = JSON.parseArray(json1,Book.class);
        System.out.println(bookList);


        // Map类型的转换:
        Map<String,List<Book>> map = new HashMap<>();
        map.put("书柜1",books);
        map.put("书柜2",books);

        String json2 = JSON.toJSONString(map);
        System.out.println(json2);

        // json转换成Map
        Map bookMap = JSON.parseObject(json2,HashMap.class);
        System.out.println(bookMap);
    }
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
<p><img src="https://img-bss.csdnimg.cn/202102030816377418.jpg" alt="" /></p> <p><img src="https://img-bss.csdnimg.cn/202102030816443989.png" alt="" /></p> <p><img src="https://img-bss.csdnimg.cn/202102030816516642.png" alt="" /></p> <p><img src="https://img-bss.csdnimg.cn/202102030816585998.png" alt="" /></p> <p><img src="https://img-bss.csdnimg.cn/202102030817043875.png" alt="" /></p> <p><img src="https://img-bss.csdnimg.cn/202102030817118023.png" alt="" /></p> <p><img src="https://img-bss.csdnimg.cn/202102030817173163.png" alt="" /></p> <p><img src="https://img-bss.csdnimg.cn/202102030817246646.png" alt="" /></p> <p><img src="https://img-bss.csdnimg.cn/202102030817379025.png" alt="" /></p> <p><img src="https://img-bss.csdnimg.cn/202102030817436096.png" alt="" /></p> <p><img src="https://img-bss.csdnimg.cn/202102030817494650.png" alt="" /></p> <p><img src="https://img-bss.csdnimg.cn/202102030817551889.png" alt="" /></p> <p><img src="https://img-bss.csdnimg.cn/202102030818029930.png" alt="" /></p> <p><img src="https://img-bss.csdnimg.cn/202102030818103441.png" alt="" /></p> <p><img src="https://img-bss.csdnimg.cn/202102030818171378.png" alt="" /></p> <p><img src="https://img-bss.csdnimg.cn/202102030818249148.png" alt="" /></p> <p><img src="https://img-bss.csdnimg.cn/202102030818316514.png" alt="" /></p> <p><img src="https://img-bss.csdnimg.cn/202102030818423760.png" alt="" /></p> <p><img src="https://img-bss.csdnimg.cn/202102030818481929.png" alt="" /></p> <p><img src="https://img-bss.csdnimg.cn/202102030818559917.png" alt="" /></p> <p><img src="https://img-bss.csdnimg.cn/202102030819025381.png" alt="" /></p> <p><img src="https://img-bss.csdnimg.cn/202102030819105301.png" alt="" /></p> <p><img src="https://img-bss.csdnimg.cn/202102030819161712.png" alt="" /></p>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值