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

相关文章

  • jsp跳转getRequestDispatcher()和sendRedirect()的区别

    当我们使用JSP开发Web应用程序时,有时需要在一个页面中获取到并处理数据,然后以某种方式跳转到另一个页面。在这种情况下,就会用到两个方法:getRequestDispatcher()和sendRedirect()。这两个方法各有优缺点,我们需要根据使用场景来合理地选择。 一、getRequestDispatcher()和sendRedirect()基本介绍…

    Java 2023年6月15日
    00
  • Java编码算法与哈希算法深入分析使用方法

    Java编码算法与哈希算法深入分析使用方法攻略 什么是编码算法? 编码算法是一种将数据从一种格式或表示方式转换为另一种格式或表示方式的算法。在Java编程中,常见的编码算法有Base64,URL编码以及HTML编码等等。 Base64编码 Base64编码是一种将二进制数据转换为可打印的ASCII字符的编码方式。Base64编码将数据每3个字节一组进行编码,…

    Java 2023年5月19日
    00
  • Springboot全局异常捕获及try catch区别解析

    Springboot全局异常捕获及try catch区别解析 在Spring Boot中,异常是常见的问题。出于代码健壮性和良好的用户体验考虑,我们需要对异常进行处理。本文将介绍如何使用全局异常处理来处理Spring Boot中的异常,并且对”try catch”语句进行解析比较。 全局异常处理 全局异常处理是指在系统发生异常时,通过一个统一的异常处理类进行…

    Java 2023年5月27日
    00
  • java基础理论Stream管道流Map操作示例

    分析题目中给出的“java基础理论Stream管道流Map操作示例”的关键词,可以将该攻略分为如下几个主要部分: Java基础:需要掌握Java的基础知识,例如类、变量、方法等。 理论:需要掌握Stream管道流和Map操作的相关概念和原理。 Stream管道流:需要掌握使用Stream管道流进行数据操作的方法和技巧。 Map操作示例:需要掌握如何使用Map…

    Java 2023年5月26日
    00
  • java正则表达式实现提取需要的字符并放入数组【ArrayList数组去重复功能】

    针对这个问题,我将分成两个部分进行回答。 第一部分:Java正则表达式实现提取需要的字符并放入数组 基本概念 正则表达式是用于描述字符串模式的一个表达式。可以根据正则表达式来匹配、查找、替换符合特定模式的文本。在 Java 中,正则表达式需要使用java.util.regex包中的类来实现。 正则表达式语法 下面是常用的正则表达式语法: . 匹配任何一个字符…

    Java 2023年5月26日
    00
  • Linux下Tomcat8如何修改JVM内存配置

    下面是详细的攻略: 准备工作 在修改Tomcat JVM内存配置之前,需要先确认是否已经安装了JDK。如果尚未安装,请先安装。安装JDK的详细步骤可以参考JDK安装指南。 修改JVM内存配置 打开Tomcat安装目录下的bin文件夹,并找到catalina.sh文件。 打开catalina.sh文件,在文件末尾添加以下代码: JAVA_OPTS=”-Xms5…

    Java 2023年5月20日
    00
  • SpringMVC如何获取表单数据(radio和checkbox)

    获取表单数据是Web应用程序中最常见的任务之一。SpringMVC在处理表单数据方面提供了许多便捷的方法,包括获取单选框和复选框的值。 获取单选框的值 客户端可以在多个单选按钮之间进行选择。一组单选按钮被视为一组,必须具有相同的名称。SpringMVC在控制器中提供了几种方法来获取选定的单选按钮值。下面是两条示例说明: 示例1:使用@RequestParam…

    Java 2023年5月26日
    00
  • Javascript实现的CSS代码高亮显示

    下面详细讲解“Javascript实现的CSS代码高亮显示”的完整攻略。 1. 如何实现代码高亮显示 第一步:在HTML中引入CSS样式表和Javascript文件 <!DOCTYPE html> <html> <head> <title>代码高亮实现</title> <link rel=&q…

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