java 读取json文件

文章目录

json介绍

JSON(JavaScript Object Notation, JS 对象简谱) 是一种轻量级的数据交换格式。它基于 ECMAScript (欧洲计算机协会制定的js规范)的一个子集,采用完全独立于编程语言的文本格式来存储和表示数据。简洁和清晰的层次结构使得 JSON 成为理想的数据交换语言。 易于人阅读和编写,同时也易于机器解析和生成,并有效地提升网络传输效率。

使用方法

首先引入 jar, 如果是maven 项目,则在pom文件中加入

      <dependency>
            <groupId>com.alibaba</groupId>
            <artifactId>fastjson</artifactId>
            <version>1.2.47</version>
      </dependency>

代码实现
第一种方式

public class App 
{
    public static String readJsonFile(String fileName) {
        String jsonStr = "";
        try {
            File jsonFile = new File(fileName);
            FileReader fileReader = new FileReader(jsonFile);

            Reader reader = new InputStreamReader(new FileInputStream(jsonFile),"utf-8");
            int ch = 0;
            StringBuffer sb = new StringBuffer();
            while ((ch = reader.read()) != -1) {
                sb.append((char) ch);
            }
            fileReader.close();
            reader.close();
            jsonStr = sb.toString();
            return jsonStr;
        } catch (IOException e) {
            e.printStackTrace();
            return null;
        }
    }
 public static void main( String[] args ) throws IOException
    {
      String path =  App.class.getClassLoader().getResource("test.json").getPath();
/*
1.Class.getResource(“”),即不以”/”开头的路径,是从当前Class类所在的包下取路径;
2.Class.getResource(“/”),即以”/”开头的路径,是从ClassPath根目录下取路径;
3.ClassLoader.getResource(),即不以”/”开头的路径,是从ClassPath根目录下取路径;
4.ClassLoader.getResource(“/”),即以”/”开头的路径,结果为null;
5.Class.getResourceAsStream()和Class.getResource相同;
6.ClassLoader().getResourceAsStream()和ClassLoader.getResource()相同;
*/
        String s = readJsonFile(path);
        JSONArray jsonArray1 = JSON.parseArray(s);

        for (Object obj : jsonArray1) {

		        JSONObject jobj = (JSONObject) obj;
		
		        String name = jobj.getString("name");
		        System.out.println(name);
		        
		        String address = jobj.getString("address");
		        System.out.println(address);        
	}	        
}

第二种方式
还需要引入sping-core.jar 和 commons-io.jar需要在pom文件中加入相应的的dependencies

  <dependency>
        <groupId>org.springframework</groupId>
        <artifactId>spring-core</artifactId>
        <version>4.3.7.RELEASE</version>
      </dependency>
            <dependency>
			<groupId>commons-io</groupId>
			<artifactId>commons-io</artifactId>
			<version>2.4</version>
		</dependency>

实现代码

public static void main( String[] args ) throws IOException
    {
        File jsonFile;
        String  json;
		jsonFile = ResourceUtils.getFile("classpath:test.json");
		json = FileUtils.readFileToString(jsonFile);
        JSONArray jsonArray = JSON.parseArray(json);
        for (Object obj : jsonArray) {
		        JSONObject jobj = (JSONObject) obj;	
		        String name = jobj.getString("name");
		        System.out.println(name);
		        String address = jobj.getString("address");
		        System.out.println(address);
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值