JAVA 格式化JSON数据并保存到json文件中的实例

下面是详细讲解“JAVA 格式化JSON数据并保存到json文件中的实例”的攻略。

1. 引入依赖

在JAVA中对JSON格式化的操作一般使用 GSON 库。在项目中需要先引入 GSON 库的依赖。

Maven依赖:

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

Gradle依赖:

implementation 'com.google.code.gson:gson:2.8.5'

2. 创建Java对象

首先我们需要创建对应的Java对象,比如一个用户类:

public class User {
    private String name;
    private int age;
    private String[] hobbies;

    // 构造函数、getter、setter省略
}

3. 将Java对象转化为JSON

将Java对象转换为JSON数据非常简单,只需要使用 Gson 类中的 toJson 方法即可。

User user = new User();
user.setName("张三");
user.setAge(20);
user.setHobbies(new String[]{"阅读", "旅游"});

String json = new Gson().toJson(user);
System.out.println(json);

输出结果为:

{
    "name": "张三",
    "age": 20,
    "hobbies": [
        "阅读",
        "旅游"
    ]
}

4. 将JSON格式化并保存到文件中

对于上面的例子,我们可以将生成的JSON字符串进行格式化,并将其保存到一个文件中。

try (FileWriter writer = new FileWriter("user.json")) {
    Gson gson = new GsonBuilder().setPrettyPrinting().create();
    gson.toJson(user, writer);
} catch (IOException e) {
    e.printStackTrace();
}

通过上面的操作,我们可以将JSON数据格式化,并保存到user.json文件中。

示例1:对复杂的JSON数据进行格式化并保存

下面是一个比较复杂的JSON格式的示例数据:

{
  "userId": 1,
  "firstName": "John",
  "lastName": "Doe",
  "contacts": [
    {
      "type": "email",
      "value": "john.doe@example.com"
    },
    {
      "type": "phone",
      "value": "123-456-789"
    }
  ],
  "address": {
    "street": "123 Main Street",
    "city": "New York",
    "state": "NY",
    "zipCode": "10001"
  }
}

对于上面的JSON格式的数据,我们需要定义对应的Java类:

public class Contact {
    private String type;
    private String value;

    // 构造函数、getter、setter省略
}

public class Address {
    private String street;
    private String city;
    private String state;
    private String zipCode;

    // 构造函数、getter、setter省略
}

public class User {
    private long userId;
    private String firstName;
    private String lastName;
    private List<Contact> contacts;
    private Address address;

    // 构造函数、getter、setter省略
}

我们可以通过以下方式将其对应的Java对象转化为JSON,并格式化和保存到文件中。

User user = new User();
user.setUserId(1L);
user.setFirstName("John");
user.setLastName("Doe");

Contact email = new Contact();
email.setType("email");
email.setValue("john.doe@example.com");

Contact phone = new Contact();
phone.setType("phone");
phone.setValue("123-456-789");

List<Contact> contacts = new ArrayList<>();
contacts.add(email);
contacts.add(phone);

user.setContacts(contacts);

Address address = new Address();
address.setStreet("123 Main Street");
address.setCity("New York");
address.setState("NY");
address.setZipCode("10001");

user.setAddress(address);

try (FileWriter writer = new FileWriter("user.json")) {
    Gson gson = new GsonBuilder().setPrettyPrinting().create();
    gson.toJson(user, writer);
} catch (IOException e) {
    e.printStackTrace();
}

示例2:读取JSON文件并转化为对应的Java对象

有时我们需要读取JSON文件,并将其转化为对应的Java对象。下面是一个user.json文件中存储的数据:

{
    "name": "张三",
    "age": 20,
    "hobbies": [
        "阅读",
        "旅游"
    ]
}

我们可以通过以下方式读取JSON文件,并将其转化为对应的Java对象。

try (FileReader reader = new FileReader("user.json")) {
    Gson gson = new Gson();
    User user = gson.fromJson(reader, User.class);
    System.out.println(user.getName());
    System.out.println(user.getAge());
} catch (IOException e) {
    e.printStackTrace();
}

通过上面的操作,我们可以将user.json文件中存储的JSON数据读取,并转化为对应的Java对象。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:JAVA 格式化JSON数据并保存到json文件中的实例 - Python技术站

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

相关文章

  • java对象与json对象间的相互转换的方法

    Java对象与JSON对象之间相互转换的方法 在Java与前端的交互中,常常需要Java对象与JSON对象之间的相互转换。这里介绍两种常用的转换方法:使用Jackson和Gson库进行转换。 使用Jackson进行Java对象和JSON对象的相互转换 步骤一:引入Jackson库 在pom.xml中添加以下依赖: <dependency> &lt…

    Java 2023年5月26日
    00
  • Springboot整合Netty自定义协议实现示例详解

    针对“Springboot整合Netty自定义协议实现示例详解”这一话题,我来给您进行详细的讲解和介绍。 1. 环境搭建 首先,我们需要在本地环境搭建好所需的开发环境。具体来说,我们需要安装好以下组件: Java SDK(1.8或更高版本) Spring Boot(2.0或更高版本) Netty(4.1或更高版本) 安装完成后,我们就可以开始进行具体的开发工…

    Java 2023年5月20日
    00
  • Java复制(拷贝)数组的4种方法:arraycopy()方法、clone() 方法、copyOf()和copyOfRan

    当我们需要在Java中复制(拷贝)数组时,有四种主要的方法可供选择: 使用arraycopy()方法 使用clone()方法 使用copyOf()方法 使用copyOfRange()方法 下面,我们将详细讲解这四种方法。 1. 使用arraycopy()方法 public static void arraycopy(Object src, int srcPo…

    Java 2023年5月26日
    00
  • maven工程中jar包瘦身的五种方法

    Maven工程中Jar包瘦身的五种方法 Maven是Java开发中非常流行的项目管理工具,但是使用Maven构建的工程往往会产生大量的依赖库和jar包,占用较多的磁盘空间。为了优化项目构建和应用部署的效率,我们需要对Jar包进行瘦身操作。这里介绍五种常见的Jar包瘦身方法。 方法一:排除依赖 Maven使用坐标的方式来定位依赖库。在项目POM文件中,我们可以…

    Java 2023年5月20日
    00
  • Java Kafka 消费积压监控的示例代码

    Java Kafka消费积压监控是Kafka中比较常见的需求之一。本文将介绍如何使用Java代码实现Kafka消费积压监控,并提供两个示例。 准备工作 在开始实现Java Kafka消费积压监控之前,请确保你已经完成以下准备工作: 安装Java开发环境和Maven构建工具。 安装Kafka,并启动Kafka服务。 创建一个Kafka主题,并开始往Kafka主…

    Java 2023年5月20日
    00
  • Java面试题之HashMap 的 hash 方法原理是什么

    HashMap 的 hash 方法原理是什么 在了解HashMap的原理之前, 我们先看看hash散列表是怎么工作的, 他的原理是什么。 散列表的原理是将关键字通过散列函数映射到固定的位置上, 并对原始值进行处理, 最终得到的值就是我们所说的哈希值, 即在HashMap中所表现出来的值。在JDK1.7之前,HashMap的内部实现方式是数组 + 链表,数组的…

    Java 2023年5月26日
    00
  • 计算机二级考试java软件操作教程 教大家如何学习java

    计算机二级考试Java软件操作教程 为什么学习Java? Java是一门跨平台的编程语言,在开发Web应用、移动应用、桌面应用等众多领域都有广泛应用。学习Java可以让程序员扩展自己的技能树,更好地适应市场需求。而计算机二级考试中也有Java相关的考察内容,学习Java可以更好地准备考试。 学习Java的基本步骤 下载安装Java开发环境(JDK)和集成开发…

    Java 2023年5月20日
    00
  • 什么是线程安全的集合?

    以下是关于线程安全的集合的完整使用攻略: 什么是线程安全的集合? 线程安全的集合是指多个线程可以同时访问的集合,而不会出现数据不一致或程序崩溃等问题。在多线程编程中,线程安全的集合是非常重要的,因为多个线程同时访问集合时,可能会出现线程间争用的问题,导致数据不一致或程序崩溃。 线程全的集合的示例 以下两个示例,分别演示了线程安全的集合的实现过程。 示例一:线…

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