使用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日

相关文章

  • eclipse如何clean? java项目进行clean的技巧

    要进行clean操作,首先需要在Eclipse的菜单栏中找到“Project”选项,并在弹出菜单中选择“Clean”。 接下来,在弹出的窗口中选择需要clean的项目,并勾选“Start a build immediately”,最后点击“OK”按钮即可开始执行clean操作。 clean操作的主要作用是清理项目中的临时文件和缓存,以提高系统的稳定性和性能。…

    Java 2023年5月26日
    00
  • Java中注解与原理分析详解

    下面是“Java中注解与原理分析详解”完整攻略: 简介 在Java中,注解可以用来给程序员自己的代码、库或者框架注释或标记额外信息,以便于利用这些注释或标记进行一些特殊的处理,比如代码生成、运行时检查或者其他的类型安全检测等。 注解本身就是类,只不过是一个继承了java.lang.annotation.Annotation的接口。注解的定义如下: publi…

    Java 2023年5月26日
    00
  • 简单了解Java程序运行整体流程

    下面我将为你详细讲解“简单了解Java程序运行整体流程”的完整攻略。 1. Java程序运行流程 Java程序的运行可以分为三个主要步骤:编写代码、编译代码和运行程序。下面我将为你详细讲解这三个步骤: 1.1 编写代码 要编写Java程序,需要使用Java编程语言。Java是一种高级编程语言,非常易学易用。在编写Java程序时,可以使用任何文本编辑器。Jav…

    Java 2023年5月23日
    00
  • 详解Spring MVC事务配置

    详解Spring MVC事务配置 在Spring MVC中,事务是一种常用的机制,它可以保证数据库操作的一致性和完整性。本文将详细介绍Spring MVC事务配置的完整攻略,包括事务的基本概念、事务的配置方式、事务的传播行为、事务的隔离级别等内容,并提供两个示例说明。 事务的基本概念 事务是指一组数据库操作,这些操作要么全部执行成功,要么全部执行失败。在Sp…

    Java 2023年5月17日
    00
  • 使用Maven Helper解决Maven插件冲突的方法

    使用Maven进行项目构建时,不可避免地会涉及到多个依赖库之间的版本冲突问题,特别是在使用多个Maven插件时更容易发生冲突。而Maven Helper是一款方便的插件,能够帮助我们解决这些冲突。下面是使用Maven Helper解决Maven插件冲突的方法: 1. 安装Maven Helper插件 首先需要在Maven项目中安装Maven Helper插件…

    Java 2023年5月20日
    00
  • 基于javaMybatis存进时间戳的问题

    那我来详细讲解一下关于“基于Java Mybatis存进时间戳的问题”的攻略。 问题背景 在使用Java Mybatis框架进行MySQL数据库操作时,我们有时需要将时间信息存储为时间戳(长整型),然后进行操作。但在实际操作中,我们有可能遇到时间戳值存储不对的问题,导致数据不正确。 解决方案 方案1:使用注解方式进行时间戳的映射 在Mybatis的实体映射中…

    Java 2023年5月20日
    00
  • 设计模式系列之组合模式及其在JDK和MyBatis源码中的运用详解

    请看下面的完整攻略: 设计模式系列之组合模式及其在JDK和MyBatis源码中的运用详解 什么是组合模式 组合模式(Composite Pattern),也叫部分-整体模式,是一种结构型设计模式。通过将对象组合成树形结构,以表示“整体-部分”的层次结构。组合模式使得用户对单个对象和组合对象的使用具有一致性,即将对象的组合与单个对象的使用同等对待。 组合模式由…

    Java 2023年5月20日
    00
  • Spring项目里将SQL语句写在.sql文件中的方法

    在Spring项目中,将SQL语句写在.sql文件中可以提高代码可维护性、可重用性。具体步骤如下: 1. 创建.sql文件 在项目中创建一个新的.sql文件,例如:user.sql,并将SQL语句写入该文件中。例如,以下是创建一个名为user的表的示例SQL: CREATE TABLE `user` ( `id` int(11) NOT NULL AUTO_…

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