Gson读取Json文件并解析

该代码示例展示了如何在Java中使用Gson库从JSON文件中读取和解析城市数据。程序定义了一个City类来表示城市信息,然后读取包含热门和其它城市的JSON对象,将hotCitySites部分转换为City对象的数组,并打印出来。
摘要由CSDN通过智能技术生成

目录

项目

pom.xml

city.json

city.java

ReadJson.java


项目

在maven 项目下,需要导入Gson坐标

pom.xml

  <dependency>
            <groupId>com.google.code.gson</groupId>
            <artifactId>gson</artifactId>
            <version>2.8.8</version>
  </dependency>

city.json

{
    "hotCitySites": [
      {
        "name": "全国",
        "code": 100010000,
        "url": "/?city=100010000"
      },
      {
        "name": "北京",
        "code": 101010100,
        "url": "/beijing/"
      },
      {
        "name": "上海",
        "code": 101020100,
        "url": "/shanghai/"
      },
      {
        "name": "广州",
        "code": 101280100,
        "url": "/guangzhou/"
      },
      {
        "name": "深圳",
        "code": 101280600,
        "url": "/shenzhen/"
      },
      {
        "name": "杭州",
        "code": 101210100,
        "url": "/hangzhou/"
      },
      {
        "name": "天津",
        "code": 101030100,
        "url": "/tianjin/"
      },
      {
        "name": "西安",
        "code": 101110100,
        "url": "/xian/"
      },
      {
        "name": "苏州",
        "code": 101190400,
        "url": "/suzhou/"
      },
      {
        "name": "武汉",
        "code": 101200100,
        "url": "/wuhan/"
      },
      {
        "name": "厦门",
        "code": 101230200,
        "url": "/xiamen/"
      },
      {
        "name": "长沙",
        "code": 101250100,
        "url": "/changsha/"
      },
      {
        "name": "成都",
        "code": 101270100,
        "url": "/chengdu/"
      },
      {
        "name": "郑州",
        "code": 101180100,
        "url": "/zhengzhou/"
      },
      {
        "name": "重庆",
        "code": 101040100,
        "url": "/chongqing/"
      },
      {
        "name": "佛山",
        "code": 101280800,
        "url": "/foshan/"
      },
      {
        "name": "合肥",
        "code": 101220100,
        "url": "/hefei/"
      },
      {
        "name": "济南",
        "code": 101120100,
        "url": "/jinan/"
      },
      {
        "name": "青岛",
        "code": 101120200,
        "url": "/qingdao/"
      },
      {
        "name": "南京",
        "code": 101190100,
        "url": "/nanjing/"
      },
      {
        "name": "东莞",
        "code": 101281600,
        "url": "/dongguan/"
      },
      {
        "name": "昆明",
        "code": 101290100,
        "url": "/kunming/"
      },
      {
        "name": "南昌",
        "code": 101240100,
        "url": "/nanchang/"
      },
      {
        "name": "石家庄",
        "code": 101090100,
        "url": "/shijiazhuang/"
      },
      {
        "name": "宁波",
        "code": 101210400,
        "url": "/ningbo/"
      },
      {
        "name": "福州",
        "code": 101230100,
        "url": "/fuzhou/"
      }
    ],
    "otherCitySites": [
      {
        "name": "南通",
        "code": 101190500,
        "url": "/nantong/"
      },
      {
        "name": "无锡",
        "code": 101190200,
        "url": "/wuxi/"
      },
      {
        "name": "珠海",
        "code": 101280700,
        "url": "/zhuhai/"
      },
      {
        "name": "南宁",
        "code": 101300100,
        "url": "/nanning/"
      },
      {
        "name": "常州",
        "code": 101191100,
        "url": "/changzhou/"
      },
      {
        "name": "沈阳",
        "code": 101070100,
        "url": "/shenyang/"
      },
      {
        "name": "大连",
        "code": 101070200,
        "url": "/dalian/"
      },
      {
        "name": "贵阳",
        "code": 101260100,
        "url": "/guiyang/"
      },
      {
        "name": "惠州",
        "code": 101280300,
        "url": "/huizhou/"
      },
      {
        "name": "太原",
        "code": 101100100,
        "url": "/taiyuan/"
      },
      {
        "name": "中山",
        "code": 101281700,
        "url": "/zhongshan/"
      },
      {
        "name": "泉州",
        "code": 101230500,
        "url": "/quanzhou/"
      },
      {
        "name": "温州",
        "code": 101210700,
        "url": "/wenzhou/"
      },
      {
        "name": "金华",
        "code": 101210900,
        "url": "/jinhua/"
      },
      {
        "name": "海口",
        "code": 101310100,
        "url": "/haikou/"
      },
      {
        "name": "长春",
        "code": 101060100,
        "url": "/changchun/"
      },
      {
        "name": "徐州",
        "code": 101190800,
        "url": "/xuzhou/"
      },
      {
        "name": "哈尔滨",
        "code": 101050100,
        "url": "/haerbin/"
      },
      {
        "name": "乌鲁木齐",
        "code": 101130100,
        "url": "/wulumuqi/"
      },
      {
        "name": "嘉兴",
        "code": 101210300,
        "url": "/jiaxing/"
      },
      {
        "name": "保定",
        "code": 101090200,
        "url": "/baoding/"
      },
      {
        "name": "汕头",
        "code": 101280500,
        "url": "/shantou/"
      },
      {
        "name": "烟台",
        "code": 101120500,
        "url": "/yantai/"
      },
      {
        "name": "潍坊",
        "code": 101120600,
        "url": "/weifang/"
      },
      {
        "name": "江门",
        "code": 101281100,
        "url": "/jiangmen/"
      }
    ]
}

读取hotCitySites所有的city对象,所以还需要建一个实体类

city.java

package com.test;

/**
 * @Description
 * @Author XueZhimin
 * @CreateTime 2023-04-18 20:52
 */
public class City {

    private String name;
    private String code;
    private String url;

    public City() {
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public String getCode() {
        return code;
    }

    public void setCode(String code) {
        this.code = code;
    }

    public String getUrl() {
        return url;
    }

    public void setUrl(String url) {
        this.url = url;
    }

    @Override
    public String toString() {
        return "City{" +
                "name='" + name + '\'' +
                ", code='" + code + '\'' +
                ", url='" + url + '\'' +
                '}';
    }
}

读取并解析Json

ReadJson.java

package com.test;

import com.dap.CityDao;
import com.dap.CityDaoImpl;
import com.google.gson.Gson;
import com.google.gson.JsonElement;
import com.google.gson.JsonObject;
import com.google.gson.stream.JsonReader;

import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.util.Arrays;

/**
 * @Description
 * @Author XueZhimin
 * @CreateTime 2023-04-18 20:48
 */
public class ReadJson {

    public static void main(String[] args) throws Exception {

        Gson gson = new Gson();
        InputStream inputStream = ReadJson.class.getClassLoader().getResourceAsStream("city.json");

        InputStreamReader reader = new InputStreamReader(inputStream);

        //【★】通过反射转化 jsonObject对象:
        JsonObject jsonObject = gson.fromJson(reader, JsonObject.class);
        System.out.println(jsonObject);

        //获取jsonObject
        JsonElement hotCitySites = jsonObject.get("hotCitySites");


        City[] cities = gson.fromJson(hotCitySites, City[].class);



        for (int i = 0; i < cities.length; i++) {
            System.out.println(cities[i]);
        }


        reader.close();
        inputStream.close();


    }

}

控制台输出

E:\Programming\Enviroment\Java\JDK_1.8\bin\java.exe "-javaagent:D:\IntelliJ IDEA 2021.3.3\lib\idea_rt.jar=52444:D:\IntelliJ IDEA 2021.3.3\bin" -Dfile.encoding=UTF-8 -classpath E:\Programming\Enviroment\Java\JDK_1.8\jre\lib\charsets.jar;E:\Programming\Enviroment\Java\JDK_1.8\jre\lib\deploy.jar;E:\Programming\Enviroment\Java\JDK_1.8\jre\lib\ext\access-bridge-64.jar;E:\Programming\Enviroment\Java\JDK_1.8\jre\lib\ext\cldrdata.jar;E:\Programming\Enviroment\Java\JDK_1.8\jre\lib\ext\dnsns.jar;E:\Programming\Enviroment\Java\JDK_1.8\jre\lib\ext\jaccess.jar;E:\Programming\Enviroment\Java\JDK_1.8\jre\lib\ext\jfxrt.jar;E:\Programming\Enviroment\Java\JDK_1.8\jre\lib\ext\localedata.jar;E:\Programming\Enviroment\Java\JDK_1.8\jre\lib\ext\nashorn.jar;E:\Programming\Enviroment\Java\JDK_1.8\jre\lib\ext\sunec.jar;E:\Programming\Enviroment\Java\JDK_1.8\jre\lib\ext\sunjce_provider.jar;E:\Programming\Enviroment\Java\JDK_1.8\jre\lib\ext\sunmscapi.jar;E:\Programming\Enviroment\Java\JDK_1.8\jre\lib\ext\sunpkcs11.jar;E:\Programming\Enviroment\Java\JDK_1.8\jre\lib\ext\zipfs.jar;E:\Programming\Enviroment\Java\JDK_1.8\jre\lib\javaws.jar;E:\Programming\Enviroment\Java\JDK_1.8\jre\lib\jce.jar;E:\Programming\Enviroment\Java\JDK_1.8\jre\lib\jfr.jar;E:\Programming\Enviroment\Java\JDK_1.8\jre\lib\jfxswt.jar;E:\Programming\Enviroment\Java\JDK_1.8\jre\lib\jsse.jar;E:\Programming\Enviroment\Java\JDK_1.8\jre\lib\management-agent.jar;E:\Programming\Enviroment\Java\JDK_1.8\jre\lib\plugin.jar;E:\Programming\Enviroment\Java\JDK_1.8\jre\lib\resources.jar;E:\Programming\Enviroment\Java\JDK_1.8\jre\lib\rt.jar;E:\IDEALab\maven-prent\maven-lab\target\classes;E:\Programming\Maven\maven_local_repository\com\google\code\gson\gson\2.8.8\gson-2.8.8.jar;E:\Programming\Maven\maven_local_repository\mysql\mysql-connector-java\8.0.21\mysql-connector-java-8.0.21.jar;E:\Programming\Maven\maven_local_repository\com\google\protobuf\protobuf-java\3.11.4\protobuf-java-3.11.4.jar;E:\Programming\Maven\maven_local_repository\com\alibaba\druid\1.2.3\druid-1.2.3.jar;E:\Programming\Maven\maven_local_repository\commons-dbutils\commons-dbutils\1.7\commons-dbutils-1.7.jar com.test.ReadJson
{"hotCitySites":[{"name":"全国","code":100010000,"url":"/?city=100010000"},{"name":"北京","code":101010100,"url":"/beijing/"},{"name":"上海","code":101020100,"url":"/shanghai/"},{"name":"广州","code":101280100,"url":"/guangzhou/"},{"name":"深圳","code":101280600,"url":"/shenzhen/"},{"name":"杭州","code":101210100,"url":"/hangzhou/"},{"name":"天津","code":101030100,"url":"/tianjin/"},{"name":"西安","code":101110100,"url":"/xian/"},{"name":"苏州","code":101190400,"url":"/suzhou/"},{"name":"武汉","code":101200100,"url":"/wuhan/"},{"name":"厦门","code":101230200,"url":"/xiamen/"},{"name":"长沙","code":101250100,"url":"/changsha/"},{"name":"成都","code":101270100,"url":"/chengdu/"},{"name":"郑州","code":101180100,"url":"/zhengzhou/"},{"name":"重庆","code":101040100,"url":"/chongqing/"},{"name":"佛山","code":101280800,"url":"/foshan/"},{"name":"合肥","code":101220100,"url":"/hefei/"},{"name":"济南","code":101120100,"url":"/jinan/"},{"name":"青岛","code":101120200,"url":"/qingdao/"},{"name":"南京","code":101190100,"url":"/nanjing/"},{"name":"东莞","code":101281600,"url":"/dongguan/"},{"name":"昆明","code":101290100,"url":"/kunming/"},{"name":"南昌","code":101240100,"url":"/nanchang/"},{"name":"石家庄","code":101090100,"url":"/shijiazhuang/"},{"name":"宁波","code":101210400,"url":"/ningbo/"},{"name":"福州","code":101230100,"url":"/fuzhou/"}],"otherCitySites":[{"name":"南通","code":101190500,"url":"/nantong/"},{"name":"无锡","code":101190200,"url":"/wuxi/"},{"name":"珠海","code":101280700,"url":"/zhuhai/"},{"name":"南宁","code":101300100,"url":"/nanning/"},{"name":"常州","code":101191100,"url":"/changzhou/"},{"name":"沈阳","code":101070100,"url":"/shenyang/"},{"name":"大连","code":101070200,"url":"/dalian/"},{"name":"贵阳","code":101260100,"url":"/guiyang/"},{"name":"惠州","code":101280300,"url":"/huizhou/"},{"name":"太原","code":101100100,"url":"/taiyuan/"},{"name":"中山","code":101281700,"url":"/zhongshan/"},{"name":"泉州","code":101230500,"url":"/quanzhou/"},{"name":"温州","code":101210700,"url":"/wenzhou/"},{"name":"金华","code":101210900,"url":"/jinhua/"},{"name":"海口","code":101310100,"url":"/haikou/"},{"name":"长春","code":101060100,"url":"/changchun/"},{"name":"徐州","code":101190800,"url":"/xuzhou/"},{"name":"哈尔滨","code":101050100,"url":"/haerbin/"},{"name":"乌鲁木齐","code":101130100,"url":"/wulumuqi/"},{"name":"嘉兴","code":101210300,"url":"/jiaxing/"},{"name":"保定","code":101090200,"url":"/baoding/"},{"name":"汕头","code":101280500,"url":"/shantou/"},{"name":"烟台","code":101120500,"url":"/yantai/"},{"name":"潍坊","code":101120600,"url":"/weifang/"},{"name":"江门","code":101281100,"url":"/jiangmen/"}]}
City{name='全国', code='100010000', url='/?city=100010000'}
City{name='北京', code='101010100', url='/beijing/'}
City{name='上海', code='101020100', url='/shanghai/'}
City{name='广州', code='101280100', url='/guangzhou/'}
City{name='深圳', code='101280600', url='/shenzhen/'}
City{name='杭州', code='101210100', url='/hangzhou/'}
City{name='天津', code='101030100', url='/tianjin/'}
City{name='西安', code='101110100', url='/xian/'}
City{name='苏州', code='101190400', url='/suzhou/'}
City{name='武汉', code='101200100', url='/wuhan/'}
City{name='厦门', code='101230200', url='/xiamen/'}
City{name='长沙', code='101250100', url='/changsha/'}
City{name='成都', code='101270100', url='/chengdu/'}
City{name='郑州', code='101180100', url='/zhengzhou/'}
City{name='重庆', code='101040100', url='/chongqing/'}
City{name='佛山', code='101280800', url='/foshan/'}
City{name='合肥', code='101220100', url='/hefei/'}
City{name='济南', code='101120100', url='/jinan/'}
City{name='青岛', code='101120200', url='/qingdao/'}
City{name='南京', code='101190100', url='/nanjing/'}
City{name='东莞', code='101281600', url='/dongguan/'}
City{name='昆明', code='101290100', url='/kunming/'}
City{name='南昌', code='101240100', url='/nanchang/'}
City{name='石家庄', code='101090100', url='/shijiazhuang/'}
City{name='宁波', code='101210400', url='/ningbo/'}
City{name='福州', code='101230100', url='/fuzhou/'}

Process finished with exit code 0

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

寻找优秀的自己

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值