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 Instrumentation API?

    如何使用Java Instrumentation API Java Instrumentation API是Java平台提供的一个高级工具,用于在运行时修改或监视Java应用程序的字节码。具体来说,Instrumentation API允许我们在JVM启动应用程序之前动态地修改类定义和字节码。这使得我们能够增强应用程序的功能,例如在应用程序执行过程中收集性能…

    Java 2023年5月11日
    00
  • JAVA位运算的知识点总结

    JAVA位运算的知识点总结 什么是位运算 在计算机中,数据都是以二进制表示的。位运算就是直接对二进制的位进行操作的运算,包括位与、位或、位异或以及位移动等操作。 位运算符号 位运算符号包括: 按位与:& 按位或:| 按位异或:^ 左移运算:<< 右移运算:>> 无符号右移运算:>>> 下面对每种符号进行详细讲…

    Java 2023年5月26日
    00
  • uniapp 获取系统信息的方法小结

    下面是详细讲解“UniApp 获取系统信息的方法小结”的完整攻略。 简介 UniApp 是一款跨平台开发框架,可支持将一份代码编译成多个平台的应用程序。在 UniApp 应用程序中,我们通常需要获取设备的一些系统信息,比如设备型号、操作系统版本等。UniApp 提供了几个 API 可以帮助我们获取这些系统信息。本文将对这些 API 进行总结和讲解。 获取设备…

    Java 2023年5月23日
    00
  • MyBatis带参查询的方法详解

    当我们使用MyBatis进行数据访问时,经常需要传入参数进行查询操作。在MyBatis中,带参查询的方法非常常见,本文将分为以下几个部分详细讲解带参查询的方法及其用法。 1. 概述 MyBatis支持多种传参方式,包括单个参数、Map、@Param注解、JavaBean等。但无论哪种方式,都遵循以下规则: 在SQL中通过#{}占位符来表示参数。 Java类型…

    Java 2023年5月20日
    00
  • tomcat相关配置与eclipse集成_动力节点Java学院整理

    tomcat相关配置与eclipse集成攻略 1. 确认tomcat安装路径 在配置tomcat与eclipse集成前,需要先确认tomcat安装的路径。假设我们的tomcat安装在D盘的tomcat目录下。 2. 在eclipse中配置tomcat 将tomcat服务器添加到eclipse中:打开eclipse,依次点击“Window” -> “Pr…

    Java 2023年6月2日
    00
  • Servlet映射路径匹配解析详解

    Servlet映射路径匹配解析详解 背景 在 Java Web 开发中,Servlet 是最基本的组件之一,而 Servlet 的映射路径(即 <url-pattern> 标签所配置的路径)则能够指定 Servlet 对哪些请求进行处理。传统的映射路径匹配规则较为简单,只支持 * 和 / 两种通配符,但实际开发中,我们常常需要更加灵活的映射路径配…

    Java 2023年6月15日
    00
  • Spring零基础到进阶之使用方法详解

    Spring零基础到进阶之使用方法详解 什么是Spring Spring 是一个开放源代码的设计层面框架,它解决的是业务层和其他各层的耦合问题,使得整个系统架构清晰、易于维护、扩展性强。 Spring框架的模块 Spring框架分为20多个模块,其中最常用的是Core Container、Data Access/Integration、Web、AOP,下面分…

    Java 2023年5月19日
    00
  • Springboot文件上传功能的实现

    在Spring Boot应用程序中,我们可以使用MultipartFile类和Spring的MultipartResolver接口来实现文件上传功能。在本文中,我们将介绍如何实现Spring Boot文件上传功能。 增加依赖 首先,我们需要在pom.xml文件中增加Spring Boot Web依赖。下面是一个示例: <dependency> &…

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