Java读取本地json文件及相应处理方法

下面是详细讲解“Java读取本地json文件及相应处理方法”的完整攻略。

1. 概述

在Java中,读取本地的JSON文件并对其进行相应的处理对于实现一些功能非常有帮助。Java本身提供了多种读取文件的方式,其中最常用的是使用FileInputStream和BufferedInputStream,同时读取JSON文件的方法包括使用JSON.parseObject方法和Gson解析库。

2. 读取JSON文件的基本步骤

步骤如下:

  1. 使用FileInputStream和BufferedInputStream读取JSON文件,可以使用下面的代码:

java
File file = new File("example.json");
FileInputStream fis = new FileInputStream(file);
BufferedInputStream bis = new BufferedInputStream(fis);

  1. 构建一个ByteArrayOutputStream对象,将读取到的文件内容写入到byte数组中,可以使用下面的代码:

java
ByteArrayOutputStream bos = new ByteArrayOutputStream();
byte[] buffer = new byte[1024];
int len;
while((len = bis.read(buffer)) > 0){
bos.write(buffer, 0, len);
}
bis.close();
fis.close();
bos.flush();
byte[] byteArray = bos.toByteArray();

  1. 将byte数组转换为JSON格式的字符串,可以使用下面的代码:

java
String content = new String(byteArray, StandardCharsets.UTF_8);

  1. 将JSON字符串解析成JSON对象,可以使用下面的代码:

java
JSONObject jsonObject = JSON.parseObject(content);

  1. 对解析的JSON对象进行相应的处理即可。

3. 两个示例

下面分别介绍两个示例:

示例1:读取本地JSON文件并输出

  1. 新建一个example.json文件,文件内容如下:

json
{
"name": "Tom",
"age": 18,
"hobby": [
"singing",
"dancing",
"swimming"
]
}

  1. 将该文件读取并输出:

java
File file = new File("example.json");
FileInputStream fis = new FileInputStream(file);
BufferedInputStream bis = new BufferedInputStream(fis);
ByteArrayOutputStream bos = new ByteArrayOutputStream();
byte[] buffer = new byte[1024];
int len;
while((len = bis.read(buffer)) > 0){
bos.write(buffer, 0, len);
}
bis.close();
fis.close();
bos.flush();
byte[] byteArray = bos.toByteArray();
String content = new String(byteArray, StandardCharsets.UTF_8);
JSONObject jsonObject = JSON.parseObject(content);
System.out.println(jsonObject);

输出结果如下:

{"hobby":["singing","dancing","swimming"],"name":"Tom","age":18}

示例2:将本地JSON文件转换为Java对象

  1. 新建一个Person.java类,包含name、age和hobby三个属性,如下:

```java
public class Person {
private String name;
private int age;
private List hobby;

   public String getName() {
       return name;
   }

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

   public int getAge() {
       return age;
   }

   public void setAge(int age) {
       this.age = age;
   }

   public List<String> getHobby() {
       return hobby;
   }

   public void setHobby(List<String> hobby) {
       this.hobby = hobby;
   }

}
```

  1. 将example.json文件转换为Person对象:

java
File file = new File("example.json");
FileInputStream fis = new FileInputStream(file);
BufferedInputStream bis = new BufferedInputStream(fis);
ByteArrayOutputStream bos = new ByteArrayOutputStream();
byte[] buffer = new byte[1024];
int len;
while((len = bis.read(buffer)) > 0){
bos.write(buffer, 0, len);
}
bis.close();
fis.close();
bos.flush();
byte[] byteArray = bos.toByteArray();
String content = new String(byteArray, StandardCharsets.UTF_8);
JSONObject jsonObject = JSON.parseObject(content);
Person person = new Person();
person.setName(jsonObject.getString("name"));
person.setAge(jsonObject.getIntValue("age"));
person.setHobby(jsonObject.getJSONArray("hobby").toJavaList(String.class));
System.out.println(person.getName());
System.out.println(person.getAge());
System.out.println(person.getHobby());

输出结果如下:

Tom
18
[singing, dancing, swimming]

4. 总结

以上就是Java读取本地JSON文件及相应处理方法的完整攻略,通过本文介绍的方法,你可以轻松地读取本地JSON文件,并对其进行相应的处理。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Java读取本地json文件及相应处理方法 - Python技术站

(0)
上一篇 2023年5月20日
下一篇 2023年5月20日

相关文章

  • 详解Java中String类型与默认字符编码

    下面是一份详细的攻略,用于讲解 Java 中 String 类型与默认字符编码的详解。 详解Java中String类型与默认字符编码 String 类型 在 Java 中,String 类型是代表字符串的一个类。它实现了 Serializable、Comparable、CharSequence 接口,是不可变的,线程安全的。String 对象的字符值被存储在…

    Java 2023年5月20日
    00
  • 解决SpringBoot中MultipartResolver和ServletFileUpload的冲突问题

    问题描述: 在使用SpringBoot开发Web应用时,如果同时使用了SpringMVC和Apache Commons File-Upload的ServletFileUpload类,就会导致MultipartResolver和ServletFileUpload的冲突问题。具体表现为上传文件时出现异常,上传文件的功能无法正常使用。 原因分析: Multipar…

    Java 2023年6月15日
    00
  • ajax jquery实现页面某一个div的刷新效果

    下面我就来详细讲解一下“ajax jquery实现页面某一个div的刷新效果”的完整攻略: 1. 理解 AJAX 在使用 AJAX 前,我们需要先理解什么是 AJAX。AJAX 全称是 Asynchronous JavaScript and XML,翻译过来是“异步 JavaScript 和 XML”。它是一种用于创建快速动态网页的技术,允许在不重新加载整个…

    Java 2023年6月15日
    00
  • Mybatis输入输出映射及动态SQL Review

    Mybatis输入输出映射及动态SQL Review Mybatis是一个基于Java的持久化框架,支持定制化SQL、存储过程以及高级映射。在Mybatis中,输入输出映射是指将Java对象与SQL语句的参数或结果集进行转换的机制,而动态SQL则可根据需要构建不同的SQL语句。 输入输出映射 输入输出映射主要涉及Mybatis中的ParameterHandl…

    Java 2023年5月19日
    00
  • java实现文件变化监控的方法(推荐)

    Java实现文件变化监控的方法(推荐) 在Java开发过程中,我们可能需要监控特定文件或目录内文件的变化情况,例如监控日志文件或配置文件的变化。本攻略将介绍Java实现文件变化监控的方法。 方案1:使用Java 7中的WatchService实现文件监控 Java 7中添加了WatchService类,它可以用于监听文件系统的事件,包括文件和文件夹的创建,修…

    Java 2023年5月19日
    00
  • Java使用System.currentTimeMillis()方法计算程序运行时间的示例代码

    下面我来详细讲解使用Java中的System.currentTimeMillis()方法计算程序运行时间的完整攻略。 一、System.currentTimeMillis()方法 System.currentTimeMillis()是Java中的一个常用方法,用于获取当前时间戳,即从1970年1月1日0时0分0秒开始到现在的毫秒数,返回类型为long。 二、…

    Java 2023年5月20日
    00
  • python,Java,JavaScript实现indexOf

    实现indexOf主要是查找字符串中某个子字符串的位置,以下是Python、Java和JavaScript实现indexOf方法的攻略。 Python实现indexOf方法 Python中字符串类型为str,提供了index()和find()两种方法来实现indexOf的功能。它们的区别在于当子字符串不存在时,index()方法会抛出ValueError异常…

    Java 2023年5月27日
    00
  • jsp中session过期设置及web.xml配置学习

    下面是关于“jsp中session过期设置及web.xml配置学习”的完整攻略: 1. session过期设置 1.1 什么是session过期? 在jsp开发中,session在很多场合都扮演了非常重要的角色,他可以用来存储用户的登录状态、用户浏览过的历史页面、用户购物车等等。但是,session也会因为一些原因来使其“死亡”,也就是所谓的过期失效。 1.…

    Java 2023年6月15日
    00
合作推广
合作推广
分享本页
返回顶部