json转换成java对象示例

下面是json转换成Java对象示例的完整攻略。

1. 确定json字符串格式

在转换之前,需要了解目标json字符串的格式。这里以如下的json字符串为例:

{
  "name": "张三",
  "age": 20,
  "gender": "男",
  "hobbies": ["唱歌", "跳舞", "游泳"],
  "address": {
    "province": "广东省",
    "city": "深圳市",
    "district": "南山区"
  }
}

2. 创建Java对象

我们需要创建一个Java对象,来存放从json字符串中解析出的数据。这里我们可以创建一个名为Person的Java类。代码如下:

public class Person {
    private String name;
    private int age;
    private String gender;
    private List<String> hobbies;
    private Address address;

    // 省略构造方法和getter/setter方法
}

同时,我们还需要创建一个Address类,来存放地址信息。代码如下:

public class Address {
    private String province;
    private String city;
    private String district;

    // 省略构造方法和getter/setter方法
}

3. 解析json字符串

我们使用第三方库Gson来解析json字符串。首先,需要将json字符串转换成JsonElement对象。代码如下:

String jsonStr = "{\"name\":\"张三\",\"age\":20,\"gender\":\"男\",\"hobbies\":[\"唱歌\",\"跳舞\",\"游泳\"],\"address\":{\"province\":\"广东省\",\"city\":\"深圳市\",\"district\":\"南山区\"}}";
JsonElement jsonElement = JsonParser.parseString(jsonStr);

接下来,我们将JsonElement对象转换成Person对象。代码如下:

Gson gson = new Gson();
Person person = gson.fromJson(jsonElement, Person.class);

这样,我们就成功将json字符串转换成了Person对象。

示例1

下面是示例1的完整代码:

public class JsonExample {

    public static void main(String[] args) {
        String jsonStr = "{\"name\":\"张三\",\"age\":20,\"gender\":\"男\",\"hobbies\":[\"唱歌\",\"跳舞\",\"游泳\"],\"address\":{\"province\":\"广东省\",\"city\":\"深圳市\",\"district\":\"南山区\"}}";
        JsonElement jsonElement = JsonParser.parseString(jsonStr);

        Gson gson = new Gson();
        Person person = gson.fromJson(jsonElement, Person.class);

        System.out.println("姓名:" + person.getName());
        System.out.println("年龄:" + person.getAge());
        System.out.println("性别:" + person.getGender());
        System.out.println("爱好:");
        for (String hobby : person.getHobbies()) {
            System.out.println(hobby);
        }
        System.out.println("地址:" + person.getAddress().getProvince() + person.getAddress().getCity() + person.getAddress().getDistrict());
    }

}

输出结果如下:

姓名:张三
年龄:20
性别:男
爱好:
唱歌
跳舞
游泳
地址:广东省深圳市南山区

示例2

下面是示例2的完整代码:

public class JsonExample {

    public static void main(String[] args) {
        String jsonStr = "{\"name\":\"李四\",\"age\":25,\"gender\":\"女\",\"hobbies\":[\"阅读\",\"旅游\"],\"address\":{\"province\":\"广西壮族自治区\",\"city\":\"桂林市\",\"district\":\"七星区\"}}";
        JsonElement jsonElement = JsonParser.parseString(jsonStr);

        Gson gson = new Gson();
        Person person = gson.fromJson(jsonElement, Person.class);

        System.out.println("姓名:" + person.getName());
        System.out.println("年龄:" + person.getAge());
        System.out.println("性别:" + person.getGender());
        System.out.println("爱好:");
        for (String hobby : person.getHobbies()) {
            System.out.println(hobby);
        }
        System.out.println("地址:" + person.getAddress().getProvince() + person.getAddress().getCity() + person.getAddress().getDistrict());
    }

}

输出结果如下:

姓名:李四
年龄:25
性别:女
爱好:
阅读
旅游
地址:广西壮族自治区桂林市七星区

这样,我们就完成了json转换成Java对象的示例。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:json转换成java对象示例 - Python技术站

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

相关文章

  • SpringBoot LocalDateTime格式转换方案详解(前端入参)

    这里给您详细讲解一下Spring Boot中 LocalDateTime 格式转换的方案。 背景 在 SpringBoot 项目中,我们有时需要从前端请求参数里获取 LocalDateTime 类型的参数,但是前端传递过来的字符串格式不一定符合 LocalDateTime 的格式,这时就需要对这些字符串进行解析和转换。 解决方案 SpringBoot 提供了…

    Java 2023年5月20日
    00
  • JSP静态导入与动态导入使用详解

    JSP静态导入与动态导入使用详解 1.什么是JSP导入 在JSP页面中,我们经常需要调用其他Java类中的方法或属性。为了方便起见,JSP提供了导入功能。 2. 静态导入 静态导入是在JSP页面中导入Java中的某个类中的静态属性或方法。 2.1 静态导入语法 <%@ page import="static java.lang.Math.*&…

    Java 2023年6月15日
    00
  • 深入理解java的异常情况

    深入理解Java的异常情况 什么是Java异常 Java异常是在程序执行过程中出现的错误或意外情况。Java中使用异常机制来捕获并处理这种情况。 Java异常可以分为Checked异常和Unchecked异常两种: Checked异常在编译时必须被处理,否则会编译错误。 Unchecked异常则不需要在编译时被处理,但在运行时如果未被处理,将导致程序异常终止…

    Java 2023年5月20日
    00
  • 浅谈springBoot注解大全

    浅谈Spring Boot注解大全 在Spring Boot应用程序开发中,注解成为了一种非常重要的方式来实现各种功能。本文将详细介绍Spring Boot注解的大全,希望对于初学者以及有一定经验的开发人员有所帮助。 Spring Boot自动配置注解 Spring Boot的自动配置是通过注解实现的,以下是一些常用的自动配置注解: @SpringBootA…

    Java 2023年5月15日
    00
  • spring boot集成pagehelper(两种方式)

    下面我会详细讲解Spring Boot集成PageHelper的两种方式及相应的示例。 方式一:使用PageHelper Starter 第一步:在pom.xml文件中添加以下依赖: <dependency> <groupId>com.github.pagehelper</groupId> <artifactId&g…

    Java 2023年5月19日
    00
  • Spring基于注解管理bean实现方式讲解

    让我来讲解一下“Spring基于注解管理bean实现方式讲解”的完整攻略。 1. 什么是Spring注解管理Bean Spring注解管理Bean是一种不需要在XML或Java配置文件中手动定义bean实例的管理方式,而是使用注解的方式来进行实例的创建、初始化和依赖注入。相对于传统的XML或Java配置方式,使用注解可以使代码更加简洁,并且可以更加方便地进行…

    Java 2023年5月31日
    00
  • js控制的遮罩层实例介绍

    我来详细讲解一下“js控制的遮罩层实例介绍”的完整攻略。 什么是遮罩层? 遮罩层(Mask)是指用于覆盖在整个页面或页面上的某个区域上的一种层,其作用是遮盖页面或某个区域,通常用于实现模态框的效果。 实现遮罩层的方式 实现遮罩层主要有以下两种方式: 使用CSS实现 使用JavaScript实现 在这里,我们主要讲解使用JavaScript实现遮罩层的方式。 …

    Java 2023年6月15日
    00
  • 如何基于JWT实现接口的授权访问详解

    基于JWT实现接口的授权访问详解攻略如下。 JWT简介 JWT (JSON Web Token) 是一种用于进行身份认证的开放标准(RFC 7519)。JWT由三部分组成:Header、Payload 和 Signature。其中,Payload 用于存储要传递的信息,可以包括用户 ID、角色等信息。Header 使用 Base64 编码存储,表示使用的算法…

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