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

yizhihongxing

下面是详细讲解“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日

相关文章

  • SpringData JPA的常用语法汇总

    下面将详细讲解关于Spring Data JPA的常用语法汇总。 一、什么是Spring Data JPA Spring Data JPA是Spring框架的一个扩展模块,可以使用简单且统一的API,提供了CRUD操作,还支持基于方法名称的查询、@Query查询以及Specification查询等。它更加注重与实体类相关的持久化层操作,将封装JPA的强大功能…

    Java 2023年6月2日
    00
  • Struts2开发环境搭建 附简单登录功能实例

    Struts2开发环境搭建 附简单登录功能实例 开发环境要求 首先,我们需要准备好以下开发环境:- Java JDK 1.7或者更高版本- Apache Tomcat 7或者更高版本- Eclipse IDE 或者其他Java集成开发环境 下载安装Tomcat 下载Tomcat 在Apache Tomcat的官网上,我们可以选择合适的版本进行下载和安装。一般…

    Java 2023年5月20日
    00
  • Java命令设计模式详解

    Java命令设计模式详解 本文将详细介绍Java命令设计模式。首先,我们会讲解什么是设计模式以及为什么要使用它们。接着,会详细讲解Java命令设计模式的相关概念以及在实际应用中的使用。最后,会提供两个示例说明,以帮助读者更好地掌握Java命令设计模式。 什么是设计模式? 在软件开发阶段,我们经常需要解决一些常见的问题,如对象的创建、系统的分布、通信的实现、异…

    Java 2023年5月26日
    00
  • SpringBoot封装响应处理超详细讲解

    在Spring Boot中,我们可以通过封装响应处理来统一处理返回结果,使得代码更加简洁、易读、易维护。以下是Spring Boot封装响应处理的详细攻略: 1. 封装响应处理的基本思路 封装响应处理的基本思路是:定义一个通用的响应对象,包含响应状态码、响应消息、响应数据等信息。在控制器中,将业务处理的结果封装到响应对象中,然后返回响应对象。在响应处理器中,…

    Java 2023年5月14日
    00
  • java获取昨天日期字符串的方法

    下面是详细讲解“java获取昨天日期字符串的方法”的完整攻略。 一、获取昨天日期字符串的基本方法 要获取昨天的日期字符串,我们可以先获取当前日期,然后将日期往前推一天,再格式化成字符串。具体步骤如下: 获取当前日期 使用java.util.Date类可以获取当前日期。代码如下: Date today = new Date(); 往前推一天 使用java.ut…

    Java 2023年5月20日
    00
  • prototype.js简单实现ajax功能示例

    下面是”prototype.js简单实现ajax功能示例”的完整攻略: 简介 在Web应用中,Ajax是一种重要的技术手段,它可以让Web页面实现异步更新,极大地提升了用户的交互体验。Prototype.js是一款流行的JavaScript框架,它为我们提供了一套便捷的Ajax实现方案。 前置知识 在学习prototype.js实现Ajax功能时,我们需要了…

    Java 2023年6月15日
    00
  • js内置对象 学习笔记

    我们来详细讲解一下JS内置对象的学习笔记。 标准内置对象 JS内置对象指的是在JS语言标准中定义的对象,以全局作用域之下的属性形式存在。可以分为以下几类: 基本数据类型(Number、String、Boolean、Symbol、BigInt、null、undefined) 内置对象(Array、Date、RegExp、Promise、Proxy、Map、Se…

    Java 2023年5月26日
    00
  • Java锁的作用是什么?

    Java锁的作用是什么? Java锁是Java中用于实现多线程同步的一种机制,它能够解决并发访问共享资源时可能出现的数据竞争和并发安全性问题,保证多个线程之间的共享数据的正确性。 Java锁的分类 Java锁主要分为以下两种: 互斥锁(exclusive lock),是一种基于排他性访问机制的锁,同一时间内只允许一个线程访问共享资源,其他线程必须等待该线程完…

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