JSON解析 Gson与FastJson

Json解析

Json简介

Json: JavaScript object Notation js对象简谱,是一种轻量级的数据交换格式。

例子:

{
	"name":"张三",
	"age":18,
	"pengyou":["小杰","李四","王五",{
				"name":"james",
				"info":"篮球player"
			}],
	"company":{
		"name":"腾讯",
		"level":10
	}
}

能干嘛:

  • 将Java中的对象 快速的转换为 JSON格式的字符串
  • 将JSON格式的字符串, 转换为Java的对象

Gson

谷歌公司解析Json的工具

  • 将对象转换为Json字符串

步骤:1、 引入jar包

​ 2、在需要转换Json字符串的位置编写如下代码:

String json = new Gson().toJSON(要转换的对象);

DEMO

 		Person person = new Person("张三", 18);
        Gson gson = new Gson();
        String json = gson.toJson(person);
        System.out.println(json);//{"name":"张三","age":18}
  • 将Json字符串转换为对象

步骤:使用Gson对象的fromJson方法

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

DEMO

//{"name":"张三","age":18,"pengyou":["小小","大大","朋朋"]}
String json = "{\"name\":\"张三\",\"age\":18,\"pengyou\":[\"小小\",\"大大\",\"朋朋\"]}";
Gson gson = new Gson();
HashMap hashMap = gson.fromJson(json, HashMap.class);//先转换成hashMap对象
ArrayList<String> pengyou = (ArrayList<String>) hashMap.get("pengyou"); // 这是个List 不是数组
for (String s : pengyou) {
    System.out.println(s);
}

结果:

小小
大大
朋朋

FastJson

阿里开发的解析Json工具

  • 将对象转换成Json字符串

步骤:1、 导入jar包

​ 2、 使用JSON的toJSONString 静态方法

String json = Json.toJSONString(要转换的对象);

Demo:

        Person person = new Person("张三", 18);
        String json = JSON.toJSONString(person);
        System.out.println(json);//{"age":18,"name":"张三"}
  • 将Json字符串转换为对象

方法:

1、 转换为对象

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

2、转换为集合

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

Demo:

    Person person = new Person("张三", 18);
    System.out.println(person.getAge());// 18
    // ["张三","李四","王五"]
    String json = "[\"张三\",\"李四\",\"王五\"]";
    List<String> list = (ArrayList<String>) JSON.parseArray(json,String.class);
    for (String s : list) {
        System.out.println(s);
    }

结果:

18
张三
李四
王五
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值