如何使用 Java 将 JSON 文件读取为字符串?这三种方法很管用!

这篇具有很好参考价值的文章主要介绍了如何使用 Java 将 JSON 文件读取为字符串?这三种方法很管用!。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

JSON (JavaScript Object Notation) 是一种轻量级的数据交换格式,它可以用来存储和传输结构化的数据。在 Java 中,有多种方法可以将 JSON 文件读取为字符串,本文将介绍其中的几种。

如何使用 Java 将 JSON 文件读取为字符串?这三种方法很管用!

方法一:使用 java.io 包中的类

java.io 包中提供了一些类,如 FileReader、BufferedReader、InputStreamReader 等,可以用来读取文件的内容。例如,假设有一个名为 data.json 的文件,其内容如下:

{
  "name": "Alice",
  "age": 25,
  "hobbies": ["reading", "coding", "traveling"]
}

要将这个文件读取为字符串,可以使用以下代码:

import java.io.*;

public class ReadJsonFile {

  public static void main(String[] args) {
    // 创建一个 File 对象,表示要读取的文件
    File file = new File("data.json");
    // 创建一个 StringBuilder 对象,用来存储读取到的字符串
    StringBuilder sb = new StringBuilder();
    try {
      // 创建一个 FileReader 对象,用来读取文件的字符流
      FileReader fr = new FileReader(file);
      // 创建一个 BufferedReader 对象,用来缓冲字符流,并提供按行读取的方法
      BufferedReader br = new BufferedReader(fr);
      // 定义一个变量,用来存储每行的内容
      String line;
      // 循环读取每一行,直到文件结束
      while ((line = br.readLine()) != null) {
        // 将每行的内容追加到 StringBuilder 中,并添加换行符
        sb.append(line).append("\n");
      }
      // 关闭 BufferedReader 和 FileReader
      br.close();
      fr.close();
    } catch (IOException e) {
      // 处理异常
      e.printStackTrace();
    }
    // 将 StringBuilder 转换为字符串,并打印输出
    String json = sb.toString();
    System.out.println(json);
  }
}

运行上面的代码,可以得到以下输出:

{
  "name": "Alice",
  "age": 25,
  "hobbies": ["reading", "coding", "traveling"]
}

方法二:使用 java.nio 包中的类

java.nio 包中提供了一些类,如 Path、Files、Charset 等,可以用来处理文件和字符编码。例如,要将上面的 data.json 文件读取为字符串,可以使用以下代码:

import java.io.IOException;
import java.nio.charset.Charset;
import java.nio.file.Files;
import java.nio.file.Path;
import java.nio.file.Paths;

public class ReadJsonFile {

  public static void main(String[] args) {
    // 创建一个 Path 对象,表示要读取的文件路径
    Path path = Paths.get("data.json");
    try {
      // 使用 Files 类的 readAllBytes 方法,将文件的所有字节读取到一个 byte 数组中
      byte[] bytes = Files.readAllBytes(path);
      // 使用 Charset 类的 forName 方法,指定字符编码为 UTF-8,并将 byte 数组转换为字符串
      String json = new String(bytes, Charset.forName("UTF-8"));
      // 打印输出字符串
      System.out.println(json);
    } catch (IOException e) {
      // 处理异常
      e.printStackTrace();
    }
  }
}

运行上面的代码,可以得到与方法一相同的输出。

方法三:使用第三方库

除了使用 Java 自带的类,还可以使用一些第三方库来简化 JSON 文件的读取。例如,可以使用 Google 的 Gson 库或者 Jackson 库。这些库不仅可以将 JSON 文件读取为字符串,还可以将 JSON 数据转换为 Java 对象或者反之。下面分别介绍这两个库的用法。

Gson

Gson 是 Google 提供的一个开源库,可以用来将 Java 对象和 JSON 数据相互转换。要使用 Gson,需要先下载并导入 gson.jar 文件到项目中。例如,要将上面的 data.json 文件读取为字符串,可以使用以下代码:

import com.google.gson.Gson;
import com.google.gson.stream.JsonReader;
import java.io.FileReader;
import java.io.IOException;

public class ReadJsonFile {

  public static void main(String[] args) {
    // 创建一个 Gson 对象
    Gson gson = new Gson();
    try {
      // 创建一个 JsonReader 对象,用来读取 JSON 数据流
      JsonReader reader = new JsonReader(new FileReader("data.json"));
      // 使用 Gson 的 fromJson 方法,将 JSON 数据流转换为一个 Java 对象
      // 这里使用 Object 类作为泛型参数,表示任意类型的对象
      Object obj = gson.fromJson(reader, Object.class);
      // 关闭 JsonReader
      reader.close();
      // 使用 Gson 的 toJson 方法,将 Java 对象转换为 JSON 字符串
      String json = gson.toJson(obj);
      // 打印输出字符串
      System.out.println(json);
    } catch (IOException e) {
      // 处理异常
      e.printStackTrace();
    }
  }
}

运行上面的代码,可以得到与方法一相同的输出。

Jackson

Jackson 是另一个流行的开源库,也可以用来将 Java 对象和 JSON 数据相互转换。要使用 Jackson,需要先下载并导入 jackson-core.jar、jackson-annotations.jar 和 jackson-databind.jar 文件到项目中。例如,要将上面的 data.json 文件读取为字符串,可以使用以下代码:

import com.fasterxml.jackson.databind.ObjectMapper;
import java.io.File;
import java.io.IOException;

public class ReadJsonFile {

  public static void main(String[] args) {
    // 创建一个 ObjectMapper 对象
    ObjectMapper mapper = new ObjectMapper();
    try {
      // 使用 ObjectMapper 的 readValue 方法,将文件中的 JSON 数据转换为一个 Java 对象
      // 这里使用 Object 类作为泛型参数,表示任意类型的对象
      Object obj = mapper.readValue(new File("data.json"), Object.class);
      // 使用 ObjectMapper 的 writeValueAsString 方法,将 Java 对象转换为 JSON 字符串
      String json = mapper.writeValueAsString(obj);
      // 打印输出字符串
      System.out.println(json);
    } catch (IOException e) {
      // 处理异常
      e.printStackTrace();
    }
  }
}

运行上面的代码,可以得到与方法一相同的输出。

总结

本文介绍了三种方法可以将 JSON 文件读取为字符串:

  • 使用 java.io 包中的类,如 FileReader、BufferedReader 等,逐行读取文件内容,并拼接成字符串。
  • 使用 java.nio 包中的类,如 Path、Files 等,一次性读取文件的所有字节,并转换成字符串。
  • 使用第三方库,如 Gson 或者 Jackson,将 JSON 数据转换为 Java 对象,并再转换为字符串。

这些方法各有优缺点,可以根据具体的需求和场景选择合适的方法。文章来源地址https://www.toymoban.com/news/detail-427674.html

到了这里,关于如何使用 Java 将 JSON 文件读取为字符串?这三种方法很管用!的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • springboot yml文件自定义配置的读取、使用 字符串 数组 对象 集合

    .yml 配置 controller代码 实体类 Student.java Users.java User.java 方式一、 http://localhost:9801/test/test1 方式二、 http://localhost:9801/test/test2 方式三、 http://localhost:9801/test/test3 参考: SpringBoot:yml文件详解-CSDN博客 https://www.jb51.net/article/216769.htm

    2024年02月05日
    浏览(36)
  • 根据Json字符串设计对应的Java对象(使用fastjson和JSONUtil工具类验证)

    记录 :467 场景 :根据Json字符串设计对应的Java对象。使用fastjson的JSON和hutool的JSONUtil将Java对象转换为Json字符串验证。 版本 :JDK 1.8,Spring Boot 2.6.3,fastjson-2.0.33,hutool-all-5.8.12。 1.Json字符串 根据如下Json字符串设计Java对象。 2.对应Java对象 2.1Java对象ProvinceDto (1)示例代码 (2)解析代

    2024年02月11日
    浏览(37)
  • 如何读取带空格的字符串?

    scanf()函数在读取字符时,识别到空格就会终止读取,那么如何读取带空格的字符串呢? 从标准输入(stdin)(指的是键盘输入)读取字符,并将它们作为 C 字符串存储到 str 中,直到达到换行字符或文件末尾。 即gets()函数会一直读取字符直到遇到换行符n(回车)或文件末尾截

    2024年02月07日
    浏览(42)
  • java将json字符串转换成json数组

    有些时候我们需要将json字符串转换成数组,并且只取一些属性值进行下一个方法的赋值,这样就涉及到了json字符串的转换了, json字符串有两种形式,一种是以{A,B,C},一种是[{A},{B},{C}]。但是很多时候是这两种的结合。 首先导入jar包 如果是第一种只需要加入以下代码,注意

    2024年02月11日
    浏览(35)
  • java中读取用户输入的整数、字符、字符串、单词

    1、取用户输入的整数 如果你想从控制台读取整数,可以使用 .nextInt()方法:例如:  这段代码向用户询问输入一个数字,并使用 .nextInt() 方法读取该数字。该方法读取用户输入,并将其作为整数返回,然后存储在变量 number 中。 2、取用户输入的字符  如果你想从控制台读取

    2024年02月06日
    浏览(54)
  • 如何将JSON字符串转化成对象

    在这里只能使用ObjiectMapper这个类才能将Json字符串转成对象的格式进行输出 话不多说,直接上代码 注意事项: json字符串只能匹配上实体类里面定义的属性,没有被定义的属性是无法进行匹配赋值的

    2024年02月13日
    浏览(27)
  • java解析多层嵌套json字符串

    在java 程序中,经常会涉及到各种变量值提取的问题,下面给出简单的示例及说明: JSON实际上也是键值对(\\\"key\\\":\\\"value\\\"),key 必须是字符串,value 可以是合法的 JSON 数据类型(字符串, 数字, 对象, 数组, 布尔值或 null) value如果是字符串,用jsonobj.getString(\\\"key\\\")获取 value如果是数

    2024年02月15日
    浏览(46)
  • 如何将JSON字符串数组转对象集合

    1、、、引入jar 包 2、Java对象转成JSON格式 3、JSON格式字符串转换成Java对象 3.1、直接将JSON字符串转换成Java对象 3.2、先将JSON字符串转换成JSON对象,再转换成Java对象 3.3、如果JSON字符串是一个JSON数组,并且数组里面存放的同一种类型的对象,可以将这个JSON数组转换成Java的Li

    2024年02月02日
    浏览(46)
  • JAVA 字符串JSON Map 对象转化

    目录 字符串转JSON JSON 转字符串 json字符串转map 将map转成json字符串 map转对象 将对象转化成map 将对象转化成JSON Json转对象 方式一 第一步 将map 转成json字符串对象 第二步 将json字符串对象转化成对象 第一步 将对象转化成json字符串 第二步 将JSON字符串转成map 方法一:fastjson转

    2024年02月15日
    浏览(32)
  • Java中list转json字符串

    例子: 有一个实体类StudentInfo 放在一个List中,为List infoList; 现在需要把这个infoList 以字符串的形式存起来,示例如下: 下面示例代码为将入参infoList转为JSON字符串输出 下面示例代码为将JSON字符串转为List

    2024年02月09日
    浏览(31)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包