栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

JSON的解析方式

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

JSON的解析方式

先报答案,常用的就两种(都需要导入Jar包):

1、GSON解析。

2、FastJson解析。

http://链接:https://pan.baidu.com/s/1RS0fC-cYSTb_tQP2GCD2Fw 提取码:fpqp

GSON解析

这是google开源的一种解析方式,在idea使用之前需要导入jar包,可以直接去GitHub上下载。

使用方法 Object——>JsonString

1、创建一个类的对象。

2、创建一个Gson对象

2、使用Gson中的toJson方法

 JsonString——>Object

1、创建一个Gson对象

2、使用fromJson方法,fromJson(String,类.class)

 注意事项:

1、Json实际上就是键值对的集合,所以可以转换为Map集合

2、如果Json键值对中的值是数组,在转换时类型会变成List

3、因为Book在创建时就已经确定了属性都是String,所以验证List的时候直接在Json字符串后面添加了一个page的属性,这个字符串已经不能转换为Book类型了。

源码
import com.google.gson.Gson;

import java.util.List;
import java.util.Map;


public class Demo_GSON {
    public static void main(String[] args) {
        //创建一个Book的对象
        Book book = new Book("1001","三体","三体人和地球人之间的战争。");
        //创建Gson对象
        Gson gson = new Gson();
        //将对象转化为JSON字符串
        String json = gson.toJson(book);
        System.out.println(json);
        //1、将JSON字符串转换为对象
        Book book2 = gson.fromJson(json,Book.class);
        System.out.println(book2.getName());
        //2、将JSON字符串转变为Map对象
        Map map = gson.fromJson(json,Map.class);
        System.out.println(map.get("info"));
        //3、如果Map的值是数组,会直接转变为List
        //数组:["三体人","地球人","打仗"]
        //{"id":"1001","name":"三体","info":"三体人和地球人之间的战争。","page":["三体人","地球人","打仗"]}
        String json3 = "{"id":"1001","name":"三体","info":"三体人和地球人之间的战争。","page":["三体人","地球人","打仗"]}";
        Map map1 = gson.fromJson(json3, Map.class);
        List list =(List) map1.get("page");
        System.out.println(list.get(1)+list.get(2));
    }
}
FastJson

这是国内常用的阿里开源的一款json解析方式,当然,它也需要导入jar包

使用方法 Object——>JsonString

不需要创建对象,直接JSON.toJSonString();就可以了。

 

 JsonString——>Object

1、转换为对象:parseObject。

 2、转化为数组:parseArray(可以理解为解析成Map集合后,其中的一个值也能使用JSON的方法,对应Gson中的get和强制转换)

 源码
import com.alibaba.fastjson.JSON;;

import java.util.List;

public class Demo_FastJson {
    public static void main(String[] args) {
        //创建一个Book的对象
        Book book = new Book("1001","三体","三体人和地球人之间的战争。");
        //直接解析为JSON字符串
        String json = JSON.toJSonString(book);
        System.out.println(json);
        //将JSON字符串转化为对象
        Book book2 = JSON.parseObject(json,Book.class);
        System.out.println(book2.getId());
        //将JSON字符串中的数组转换为Array:["一二三","四五六","七八"]
        List list = JSON.parseArray("["一二三","四五六","七八"]", String.class);
        System.out.println(list.get(1));
    }
}

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/288491.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号