Json解析方式(学习笔记)


前言

本文为学习笔记,简陋之处请多多包含


一、Json是什么?

简介

JSON是一种取代XML的数据结构,和xml相比,它更小巧但描述能力却不差,由于它的小巧所以网络传输数据将减少更多流量从而加快速度。

JSON就是一串字符串 只不过元素会使用特定的符号标注。

{} 双括号表示对象

[] 中括号表示数组

“” 双引号内是属性或值

: 冒号表示后者是前者的值(这个值可以是字符串、数字、也可以是另一个数组或对象)

示例

		{                
			"name":"伟杰老师",                
			"age":18,                
			"pengyou":["张三","李四","王二","麻子",{                            
				"name":"老师",                           
 				"info":"像匹野马一样狂奔在技术钻研的道路上"                        
 				}],                
 			"tezheng":{                    
 				"hobby":"画画",                    
 				"height":"180cm"                
 				}            
 			}

Java与Json

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

二、Json解析方式

2.1 Gson

将对象转换为JSON字符串

步骤:
1. 引入JAR包(示例:gson-2.8.6.jar)
2. String json = new Gson().toJSON(要转换的对象);

代码示例:

public class Demo1 {
    public static void main(String[] args) {
    	//创建对象
        Book book = new Book("100","金苹果","种植苹果");
        //对象转json字符串
        String s = new Gson().toJson(book);
        System.out.println(s);
    }
}

示例结果:

{"id":"100","name":"金苹果","info":"种植苹果"}

将JSON字符串转换为对象

步骤:
1. 引入JAR包(示例:gson-2.8.6.jar)
2. 对象 = new Gson().fromJson(JSON字符串,对象类型.class);

代码示例:

public class Demo1 {
    public static void main(String[] args) {
        Gson g = new Gson();
        Book x = g.fromJson("{\"id\":\"100\",\"name\":\"金苹果\",\"info\":\"种植苹果\"}",Book.class);
        System.out.println(x.getId());
    }
}

示例结果:

100

2.2 FastJson

将对象转换为JSON字符串

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

代码示例:

public class Demo1 {
   public static void main(String[] args) {
       Book book = new Book("100","金苹果","种植苹果");
       String json = JSON.toJSONString(book);
       System.out.println(json);
   }
}

示例结果:

{"id":"100","info":"种植苹果","name":"金苹果"}

将JSON字符串转换为对象

步骤:
1. 引入JAR包 (示例:fastjson-1.2.70.jar)
2. 在需要转换Java对象的位置, 编写如下代码: 类型 对象名=JSON.parseObject(JSON字符串, 类型.class);
或 List<类型> list=JSON.parseArray(JSON字符串,类型.class);

代码如下(示例):

public class Demo1 {
    public static void main(String[] args) {
        Book book = JSON.parseObject("{\"id\":\"100\",\"info\":\"种植苹果\",\"name\":\"金苹果\"}",Book.class);
        System.out.println(book.getInfo());
    }
}

示例结果:

种植苹果

总结

JSON对于移动设备来说,尤其对于网络环境较差和流量限制的情况下,相对于XML格式的数据传输会更节省流量,传输效率更高。解析方式中FastJson是国内阿里推出的,Gson是谷歌推出的,国内一般常用FastJson,效果上都大同小异,可根据团队使用进行选择。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值