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日

相关文章

  • 深入了解Java设计模式之职责链模式

    深入了解Java设计模式之职责链模式 职责链模式是一种行为型设计模式,它允许你将请求沿着处理者链进行发送,直到其中一个处理者处理该请求。职责链模式常用于请求的处理流程较为复杂,有多个处理器时的情况。 定义 职责链模式为请求创建了一个接受者对象的链,给予请求的类型,对请求的发送者和接收者进行解耦。职责链模式将请求的发送者和接收者分离开来,只要在链上得到处理,就…

    Java 2023年5月20日
    00
  • 微信小程序之ES6与事项助手的功能实现

    微信小程序之ES6与事项助手的功能实现攻略 一、前言 随着微信小程序的火爆,越来越多的开发者开始学习小程序开发。在小程序开发中,ES6作为JavaScript的新标准,也被越来越多的开发者看重。本篇攻略将详细讲解如何在微信小程序中使用ES6,并结合事项助手的功能实现进行示例说明。 二、ES6在微信小程序中的使用 1. 环境准备 在使用ES6进行对小程序进行开…

    Java 2023年5月23日
    00
  • 利用keytools为tomcat 7配置ssl双向认证的方法

    下面是详细的“利用keytools为tomcat 7配置ssl双向认证的方法”的攻略: 一、生成证书文件 首先,我们需要生成证书文件,可以使用Java自带的keytool工具来完成此步骤。以下是生成证书文件的命令: keytool -genkeypair -alias client -keyalg RSA -keysize 2048 -sigalg SHA2…

    Java 2023年5月19日
    00
  • JDK14的新特性NullPointerExceptions的使用

    下面是详细讲解“JDK14的新特性NullPointerExceptions的使用”的完整攻略。 什么是NullPointerExceptions NullPointerExceptions 是 Java 程序中最常见的错误之一,它通常会在代码中使用空引用时发生。在 JDK14 中,对于这个问题已经进行了一些新的改进,我们可以更加方便地处理这个问题。 如何使…

    Java 2023年5月27日
    00
  • Java向List集合中批量添加元素的实现方法

    当我们需要向Java中的List类型的集合中批量添加元素时,通常可以使用以下两种方法: 1.使用addAll()方法 List集合的addAll()方法可以接收一个Collection类型的参数,用于将该Collection集合中的元素全部添加到List集合当中。代码示例如下: List<String> list1 = new ArrayList…

    Java 2023年5月26日
    00
  • 如何使用java制作假数据接口

    我们来详细讲解如何使用Java制作假数据接口的完整攻略。 什么是假数据接口 假数据接口是一种用于模拟真实数据的虚拟接口,通常用于在开发过程中替代实际接口进行测试、演示和展示。通过模拟数据,可以确保应用程序在与真实数据交互时能够正常工作,同时也可以在后端 API 开发尚未完成或测试环境不可用时进行前端开发。 如何使用Java制作假数据接口 在Java中,我们可…

    Java 2023年5月26日
    00
  • ASP开发中存储过程应用全接触

    ASP开发中存储过程应用全接触 什么是存储过程? 在数据库中,存储过程是一组为了完成特定任务的SQL语句集合。存储过程可以接收数据、处理数据并返回数据,它可以调用其他存储过程、控制逻辑、计划任务和其他编程构造。存储过程可以显著提高数据库的性能,同时也具备一些安全性和封装性方面的优势。在ASP开发中使用存储过程,可以使代码结构更清晰,可维护性更高,同时也能提高…

    Java 2023年6月16日
    00
  • java8使用filter()取出自己所需数据

    下面我会详细讲解“Java8使用filter()取出自己所需数据”的完整攻略,包括使用filter()的语法和实际运用中的两条示例说明。 filter()的语法 在Java8中,Stream接口提供了filter()方法,用于对流中的元素进行过滤操作,返回一个新的流对象。filter()方法的语法如下: Stream<T> filter(Pred…

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