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

yizhihongxing

使用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计算一个数加上100是完全平方数,加上168还是完全平方数

    题目简述:Java计算一个数加上100是完全平方数,加上168还是完全平方数 根据题目中的描述,可以得到以下两个方程:1. n + 100 = x^22. n + 168 = y^2 其中,n表示待求解的数,x和y分别是n加上100和n加上168后所对应的完全平方数。 这两个方程可以同时求解,步骤如下: 首先,对于x^2和y^2,我们可以利用Java的Mat…

    Java 2023年5月19日
    00
  • java链式创建json对象的实现

    Java中创建JSON对象的方式有很多,本文主要介绍链式创建JSON对象的方法实现。 1. 什么是链式创建JSON对象? 链式创建JSON对象是一种将多个属性值链接起来构建一个JSON对象的技术,可以使代码更简洁、更易读,但也要注意可读性。 2. 链式创建JSON对象实现的步骤 步骤1:导入依赖库 JSON库在Java中有很多选择,常用的有GSON、Fast…

    Java 2023年5月26日
    00
  • Spring Boot编写拦截器教程实例解析

    下面是“Spring Boot编写拦截器教程实例解析”的完整攻略。 1. 什么是拦截器? 在 Spring Boot 中,拦截器(Interceptor)是一种 AOP(面向切面编程)技术,它可以在请求到达目标方法之前,或者在请求结束之后,实现相应的拦截操作。拦截器可以用来记录日志、验证用户权限、对请求参数进行处理等。 2. Spring Boot 中实现拦…

    Java 2023年5月31日
    00
  • Midjourney:一步一步教你如何使用 AI 绘画 MJ

    一步一步如何使用 Midjourney 教程:教学怎么用 MJ? 一、Midjourney(MJ)是什么? Midjourney是一款使用文字描述来生成高质量图像的AI绘画工具。这篇文章主要介绍了Midjourney及其用途,并针对Midjourney的使用提供了一些指南。该工具可以帮助人们更快速、更容易地创建图像。 与市场上的其他AI绘画工具相比,Midj…

    Java 2023年4月22日
    00
  • java FastJson的简单用法

    Java FastJson 的简单用法 FastJson 是一个 JSON 解析库,它可以将 Java 对象序列化为 JSON 数据,也可以将 JSON 数据反序列化为 Java 对象。FastJson 的使用非常简单,下面就介绍一下 Java FastJson 的简单用法。 FastJson 的引入 在使用 FastJson 之前,需要先引入 FastJs…

    Java 2023年5月26日
    00
  • java操作ftp下载文件示例

    下面是关于Java操作FTP下载文件的示例攻略。 1. 使用 commons-net 库进行 FTP 文件下载 1.1 导入commons-net.jar包 要进行FTP文件下载,首先需要导入Apache的commons-net库,常见的方式是将其作为依赖项加入到Maven项目中: <dependency> <groupId>comm…

    Java 2023年5月19日
    00
  • SpringBoot集成Beetl后统一处理页面异常的方法

    为了让 SpringBoot 集成 Beetl 后能够统一处理页面异常,需要实现一个全局异常处理器。以下是实现步骤: 1. 引入 Beetl 和 Beetl Spring Boot Starter 在 pom.xml 文件中引入 Beetl 和 Beetl Spring Boot Starter: <dependency> <groupId…

    Java 2023年5月27日
    00
  • jsp页面中插入css样式的三种方法总结

    下面将详细讲解jsp页面中插入css样式的三种方法总结。 方法一:直接在jsp页面中使用style标签 在jsp页面的标签中添加 标签,然后直接在其中编写CSS样式即可。 示例: <%@ page contentType="text/html;charset=UTF-8" language="java" %&gt…

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