使用Java构造和解析Json数据的两种方法(详解一)

使用Java构造和解析JSON数据的两种方法有:使用Java的JSONObject和JSONArray类和使用第三方库Gson。

使用Java的JSONObject和JSONArray类

在使用该方法前,需要先导入JSON库,例如org.json库。

构造JSON数据

使用JSONObject和JSONArray类可以方便地构造JSON数据。JSONObject类用于像一个映射表一样管理属性。JSONArray类用于保存数组。

以下示例展示了如何使用JSONObject和JSONArray类构造JSON数据:

import org.json.*;

public class JSONExample {

   public static void main(String[] args) {
      JSONObject obj = new JSONObject();
      obj.put("name", "John");
      obj.put("age", new Integer(25));

      JSONArray list = new JSONArray();
      list.put("msg 1");
      list.put("msg 2");
      list.put("msg 3");

      obj.put("messages", list);

      System.out.println(obj);
   }
}

上述示例中,建立了一个JSON对象obj,并且设定属性值"John"和25分别对应"name"和"age"两种属性。同时,建立了一个JSON数组"messages",并在数组内添加了三个元素的字符串类型。

使用JSONObject的put()方法,可以将键值对存放到JSON对象中。使用JSONArray的put()方法,可以将元素加入JSON数组。最后,直接使用System.out.println输出JSON对象即可。

解析JSON数据

JSON数据可以用JSONObject或JSONArray来解析。以下示例将使用JSONObject来解析JSON数据:

import org.json.*;

public class JSONExample {

   public static void main(String[] args) {
      String jsonString = "{\"name\":\"John\", \"age\":25, \"messages\":[\"msg 1\",\"msg 2\",\"msg 3\"]}";
      JSONObject obj = new JSONObject(jsonString);

      String name = obj.getString("name");
      int age = obj.getInt("age");
      JSONArray messages = obj.getJSONArray("messages");

      System.out.println("Name: " + name);
      System.out.println("Age: " + age);
      System.out.println("Messages: " + messages);
   }
}

上述示例中,使用JSONObject的构造函数,将JSON字符串转换为Java对象,并使用getString()方法和getInt()方法来获取"name"和"age"两个属性的值。同时,使用getJSONArray()方法来获取"messages"数组的值。

使用第三方库Gson

Gson是Google开发的一款Java库,可用于将Java对象转换为JSON格式,以及将JSON格式转换为对应的Java对象。

构造JSON数据

在使用Gson构造JSON数据之前,需要先导入Gson库。

以下示例展示了如何使用Gson构造JSON数据:

import com.google.gson.*;

public class GsonExample {

    public static void main(String[] args) {
        JsonObject obj = new JsonObject();
        obj.addProperty("name", "John");
        obj.addProperty("age", 25);

        JsonArray list = new JsonArray();
        list.add(new JsonPrimitive("msg 1"));
        list.add(new JsonPrimitive("msg 2"));
        list.add(new JsonPrimitive("msg 3"));

        obj.add("messages", list);

        Gson gson = new Gson();
        String json = gson.toJson(obj);

        System.out.println(json);
    }
}

上述示例中,建立一个JsonObject对象,并设定属性值"John"和25分别对应"name"和"age"两种属性。同时,建立一个JsonArray对象"messages",并向数组中添加了三个元素的字符串类型。

使用Gson的toJson()方法,将JsonObject转换成对应的JSON格式字符串。

解析JSON数据

使用Gson库可以方便地将JSON字符串转换为Java对象。以下示例展示了如何使用Gson解析JSON数据:

import com.google.gson.*;

public class GsonExample {

    public static void main(String[] args) {
        String jsonString = "{\"name\":\"John\", \"age\":25, \"messages\":[\"msg 1\",\"msg 2\",\"msg 3\"]}";
        Gson gson = new Gson();

        JsonObject obj = gson.fromJson(jsonString, JsonObject.class);
        String name = obj.get("name").getAsString();
        int age = obj.get("age").getAsInt();

        JsonArray messages = obj.getAsJsonArray("messages");
        for(JsonElement message : messages) {
            System.out.println(message.getAsString());
        }
    }
}

上述示例中,使用Gson的fromJson()方法,将JSON字符串转换成Java对象,同时使用get()方法获取对应的属性值。

使用getAsJsonArray()方法获取数组类型属性值。循环遍历JsonArray并逐一获取元素值。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:使用Java构造和解析Json数据的两种方法(详解一) - Python技术站

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

相关文章

  • Java Apache POI报错“IOException”的原因与解决办法

    “IOException”是Java的Apache POI类库中的一个异常,通常由以下原因之一引起: 文件错误:如果文件无法读取或写入,则可能会出现此异常。例如,可能会尝试读取不存在的文件或尝试写入只读文件。 以下是两个实例: 例1 如果文件无法读取或写入,则可以尝试使用正确的文件路径以解决此问题。例如,在Java中,可以使用以下代码: FileInputS…

    Java 2023年5月5日
    00
  • SpringBoot java-jar命令行启动原理解析

    针对“SpringBoot java-jar命令行启动原理解析”的完整攻略,下文将给出具体的讲解,包括命令行启动的原理、启动过程和相关示例。 命令行启动的原理 Spring Boot是基于Spring框架之上的一个集成框架,它的启动原理主要依赖于Spring框架的启动机制。在命令行中通过java命令启动Spring Boot会执行以下步骤: 使用Java命令…

    Java 2023年5月19日
    00
  • 为什么继续选择DELPHI(即将逝去的Delphi前景在何方)

    为什么继续选择DELPHI(即将逝去的Delphi前景在何方) 背景 Delphi是一种基于Object Pascal编程语言的集成开发环境,由Borland公司在1995年发布。自发布以来,Delphi为数不少的开发者提供了稳定快捷、功能丰富的编程环境。然而,随着新的技术不断涌现,Delphi市场份额逐渐萎缩,导致一些人对其前景存在疑虑。但是,选择Delp…

    Java 2023年5月19日
    00
  • hibernate和mybatis对比分析

    文本格式要求: 标题使用#号表示,#号数量表示标题等级,一级标题一个#号,二级标题二个#号,以此类推 代码块使用三个反引号括起来,并标明代码语言 Hibernate和MyBatis对比分析 什么是Hibernate? Hibernate是一个基于Java的ORM框架,即对象关系映射框架。它可以将Java类映射到关系型数据库中的表,使得Java程序员可以使用面…

    Java 2023年5月19日
    00
  • 详解如何在Java中加密和解密zip文件

    详解如何在Java中加密和解密zip文件 概述 在Java中,我们可以使用ZipOutputStream和ZipInputStream来压缩和解压缩zip文件,同时,我们可以通过加密和解密zip文件来保护文件的数据安全,确保只有授权用户可以访问zip文件的内容。本文将详细讲解如何在Java中加密和解密zip文件,并提供两个示例代码方便理解。 加密zip文件 …

    Java 2023年5月26日
    00
  • Java时间类库Timer的使用方法与实例详解

    Java时间类库Timer的使用方法与实例详解 1. Timer类概述 Timer类是Java中非常常用的类之一,它是专门用于在后台线程按指定时间间隔执行任务的类。如:如果你想在每个三小时提醒一次,那么可以用Timer来执行提醒任务。Timer可以在线程中执行任务,并可以在指定的时间间隔内执行任务。 2. Timer类的使用方法 Timer类一共有两个版本:…

    Java 2023年5月20日
    00
  • JSP页面的动态包含和静态包含示例及介绍

    下面我会详细讲解一下“JSP页面的动态包含和静态包含示例及介绍”的攻略。 什么是JSP页面的包含? JSP页可以通过 <%@ include file=”filename.jsp” %> 的方式,包含其他文件或JSP页面。这个操作叫做实现JSP页面的包含。根据包含JSP页面和被包含JSP页面的关系,包含又可以分为静态包含和动态包含。 静态包含 所…

    Java 2023年6月15日
    00
  • JDBC编程的详细步骤

    JDBC(Java Database Connectivity)是Java程序访问数据库的标准解决方案。下面,我将介绍JDBC编程的详细步骤,包括连接数据库、执行SQL语句等内容。 步骤一:导入JDBC驱动 通常情况下,你需要把特定数据库的JDBC驱动程序(JAR文件)导入到工程中,以便在程序中使用。不同数据库的JDBC驱动程序会有所不同,所以你需要确保使用…

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