Java JSON 处理 (JSON-P) 及示例

简介

由于强大的 Java JSON 处理 (JSON-P) API,Java 程序可以处理 JSON 数据。Web 服务器和客户端经常使用轻量级 JSON 数据传输标准交换数据。JSON-P 提供对象模型 API 和流 API 作为处理 JSON 数据的两种主要方法。

让我们来谈谈这两种策略,并用示例来展示它们是如何工作的以及它们可以做什么。我们希望读者通过理解本文对 Java JSON 处理 (JSON-P) 的解释和示例,了解对象模型 API 和流 API 以及编程示例。

Java JSON 处理 (JSON-P) 的特点

我们知道 JSON-P 为我们提供了两种不同的功能来处理 JSON 数据 -

  • 对象模型 API - 此方法将 JSON 数据显示为由对象、数组和值组成的结构,很像树。它与 XML 的 DOM 解析器相当。对象模型 API 使导航和修改 JSON 部分变得简单,同时管理微小的 JSON 数据。

  • Streaming API - Streaming API 按顺序处理 JSON 数据,而不是将完整的 JSON 放入内存中,使其成为一种更节省内存的方法。它适合处理海量JSON数据,与使用StAX解析器处理XML相当。

使用对象模型 API 读取和解析 JSON 数据

在此编程示例中,我们将学习如何使用对象模型 API 读取和解析 JSON 数据。

例子

import javax.json.Json;
import javax.json.JsonObject;
import javax.json.JsonReader;
import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStream;
public class ModObjtest
{
   public static void main(String args []) throws IOException
   {
      try (InputStream fis = new FileInputStream("data.json");
      JsonReader jsonReader = Json.createReader(fis))
      {
         JsonObject jsonObject = jsonReader.readObject();
         // Step 4: fetch data from the JsonObject
         String name = jsonObject.getString("name");
         int age = jsonObject.getInt("age");
         boolean isMarried = jsonObject.getBoolean("isMarried");
         // print data
         System.out.println("Name: " + name);
         System.out.println("Age: " + age);
         System.out.println("Married: " + isMarried);
      }
   }
}

输出

** data.json output**
{
   "name": "Sheli Sharma",
   "age": 28,
   "isMarried": true
}
** ModObjtest.java output**
Name: Sheli Sharma
Age: 28
Married: true

为此,我们在此程序中导入了一些重要的包。

javax.json.Json;
javax.json.JsonObject;
javax.json.JsonReader;
java.io.FileInputStream;
java.io.IOException;
java.io.InputStream;

之后,我们定义了一个名为 ModObjTest 的类,并在该类中调用了 main () 函数。在 main 函数中,我们抛出 IOException 并打开输入流以从文件中读取 JSON 数据。

try (InputStream fis = new FileInputStream("data.json");

之后,我们通过创建 jsonReader 类的名为 jsonReader 的对象并调用名为 readObject() 的函数,创建了一个 JsonReader 来读取 JSON 数据。

JsonReader jsonReader = Json.createReader(fis)) {

现在我们通过创建名为 jsonObject 的类的名为 jsonObject 的对象并调用名为 readobject () 的函数,将 JSON 数据解析为 JsonObject。

JsonObject jsonObject = jsonReader.readObject();

现在,我们通过声明名为“name”的字符串并调用名为 getString () 的函数并将“name”的值作为参数传递到函数的括号内,从 JsonObject 中获取数据。

String name = jsonObject.getString("name");

现在我们声明了另一个名为“age”的整数类型变量,并调用另一个名为 getInt() 的函数,并将函数括号内的“age”值作为参数传递。

int age = jsonObject.getInt("age");

现在我们调用了另一个名为 getBoolean () 的函数,并将函数括号内的值“isMarried”作为参数传递,并将该值存储到另一个名为“ismarried”的布尔类型变量中。

boolean isMarried = jsonObject.getBoolean("isMarried");

现在我们已经打印了所有数据以获得所需的输出。

System.out.println("Name: " + name);
System.out.println("Age: " + age);
System.out.println("Married: " + isMarried);

使用 JSON-P Streaming API 生成 JSON 数据

在这个特定的编程示例中,我们将了解如何使用 JSON-P Streaming API 生成 JSON 数据。

例子

import javax.json.Json;
import javax.json.JsonObject;
import javax.json.stream.JsonGenerator;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.OutputStream;
public class StreamJsontest
{
   public static void main(String args []) throws IOException 
   {
      try (OutputStream fos = new FileOutputStream("output.json");
      JsonGenerator jsonGenerator = Json.createGenerator(fos))
      {
         // Generate JSON data using the Streaming API
         jsonGenerator.writeStartObject()
            .write("name", "Aishee")
            .write("age", 25)
            .write("isStudent", true)
            .writeStartObject("indianName")
            .write("firstName", "Aarav")
            .write("lastName", "Sharma")
            .writeEnd()
            .writeStartObject("indianAddress")
            .write("homeNo", "325")
            .write("street", "SY Avenue")
            .write("hometown", "Kolkata")
            .write("state", "WB")
            .write("pin", "400001")
            .writeEnd()
            .writeEnd();
         // Close the JSON generator
         jsonGenerator.close();
      }s
      // Read JSON data from the file and convert it to a string
      String jsonString = readJsonFromFile("output.json");
      System.out.println(jsonString);
   }
   private static String readJsonFromFile(String file) throws IOException 
   {
      try (InputStream fis = new FileInputStream(file);
      JsonReader jsonReader = Json.createReader(fis)) {
         JsonObject jsonObject = jsonReader.readObject();
         return jsonObject.toString();
      }
   }
}

输出

{"name":"Aishee","age":25,"isStudent":true,
"indianName":{"firstName":"Aarav","lastName":"Sharma"},
"indianAddress":{"homeNo":"325","street":"SY Avenue",
"hometown":"Kolkata","state":"WB","pin":"400001"}}

为此,我们首先在此程序中导入了一些重要的包。

javax.json.Json;
javax.json.JsonObject;
javax.json.JsonReader;
java.io.FileInputStream;
java.io.IOException;
java.io.InputStream;

现在我们已经定义了一个名为 StreamJsonTest 的类,并且在函数内部我们调用了抛出 IOException 的 main () 函数。在 main () 函数中,我们通过调用名为 writeStarObject() 的函数,使用 Streaming API 生成了 JSON 数据。

jsonGenerator.writeStartObject()

现在我们通过调用另一个名为 json.genearator 的函数来关闭 json 生成器。

jsonGenerator.close();

之后,我们从文件中读取 JSON 数据,并通过调用一个更重要的函数 readJsonFromFile () 将其转换为字符串,并打印 json 字符串。

String jsonString = readJsonFromFile("output.json");
System.out.println(jsonString);

现在我们抛出了另一个重要的异常 IOException 并创建了 jsonReadObject 到名为 jsonReadObject 的类并调用另一个名为 createReader() 的函数。

JsonReader jsonReader = Json.createReader(fis))

最后我们返回了 jsonObject.toString()。

总结

在本文中,我们涵盖了 Java 中 JSON 处理的所有主要主题。对于IT软件开发行业的现状来说,java是一个非常重要的话题。java中Json处理的价值是无价的。因此,我们尽力通过逻辑编程示例及其解释来涵盖该主题的所有方面。


文章来源地址https://www.toymoban.com/diary/java/403.html

到此这篇关于Java JSON 处理 (JSON-P) 及示例的文章就介绍到这了,更多相关内容可以在右上角搜索或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

原文地址:https://www.toymoban.com/diary/java/403.html

如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请联系站长进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用
上一篇 2023年10月15日 17:40
下一篇 2023年10月15日 23:33

相关文章

  • Java面向对象编程实战详解(图书管理系统示例)

    Java面向对象编程(Object-Oriented Programming,OOP)是Java语言的核心特性之一,它提供了一种组织代码的方法,将现实世界中的事物抽象为对象,并通过对象之间的交互来构建程序。Java面向对象编程包含以下主要概念: 类和对象(Class and Object): 类是面向对象编程的基本构建块

    2024年02月15日
    浏览(45)
  • Java 学习路线:基础知识、数据类型、条件语句、函数、循环、异常处理、数据结构、面向对象编程、包、文件和 API

    Java 是一种由 Sun Microsystems 于 1995 年首次发布的编程语言和计算平台。Java 是一种通用的、基于类的、面向对象的编程语言,旨在减少实现依赖性。它是一个应用程序开发的计算平台。Java 快速、安全、可靠,因此在笔记本电脑、数据中心、游戏机、科学超级计算机、手机等领

    2024年03月24日
    浏览(91)
  • Java List对象集合转Json & Json转List对象集合

    使用了阿里巴巴的 fastjson  首先引入依赖 示例如下 输出结果:

    2024年02月15日
    浏览(57)
  • JSON对象转为Java类对象

    本文讲述两种方法,使JSON对象转为Java类对象。基于 FastJson1 对于以下的JSON对象: 假设以上的JSON对象已通过toJSONString()方法转为String,那么有两种方法可以将其转为Java类对象, 前提是已定义一个YourClass类,其成员变量可以容纳以上records内的各个字段, 两种转换方法如下:

    2024年02月10日
    浏览(62)
  • JAVA 对象转换为JSON

    转载:如何把java对象转换为json java对象怎么转成json_clghxq的技术博客_51CTO博客 1、Java对象列表转换为JSON对象数组,并转为字符串 JSONArray jsonArray = JSONArray.fromObject(list); String jsonArrayStr = jsonArray.toString(); 2、把Java对象转换成JSON对象,并转化为字符串 JSONObject jsonObject = JSONObject.

    2024年02月10日
    浏览(38)
  • Java入门-java对象与json之间的转换

    使用jackson实现java对象转为Json字符串 引入依赖 对象转json字符串 测试 使用Jackson对象完成转换工作。 json字符串转换对象 测试

    2024年02月22日
    浏览(48)
  • 【御控工业物联网】JAVA JSON结构转换、JSON结构重构、JSON结构互换(5):对象To对象——转换映射方式

    JSON结构转换指的是将一个JSON对象或JSON数组按照一定规则进行重组、筛选、映射或转换,生成新的JSON对象或数组的过程。这种转换可以包括改变JSON数据的结构、提取特定字段、合并多个JSON数据,或者对数据进行计算和处理等操作。 在JSON结构转换中,常见的操作包括: 提取

    2024年04月27日
    浏览(40)
  • 【JAVA杂货铺】一文带你走进面向对象编程的构造方法 | Java| 面向对象编程 | (中)

    🌈个人主页:  Aileen_0v0 🔥系列专栏: Java学习系列专栏 💫个人格言: \\\"没有罗马,那就自己创造罗马~\\\"   目录 回顾  构造方法  this 面试题 构造方法的类型  下节预告 代码块  之前我们学习了什么是类  什么是对象  什么是面向对象编程 定义类   构造方法 :它的方法名

    2024年02月05日
    浏览(55)
  • JSON 与 Java 对象之间的转化

    在现在的日常开发中,不管前端还是后端,JSON 格式的数据是用得比较多的,甚至可以说无处不在。 接触最多的就是 POST 请求中传递的数据一般以 JSON 的格式放在请求体中,而且服务端各种 API 返回的数据,在响应体中也基本都是以 JSON 格式的数据进行返回的,这也是 RESTfu

    2024年01月17日
    浏览(47)
  • 【Java语言面向对象】(1)面向过程编程

    人机猜拳的第一版(下方是程序源码) 人机猜拳(面向过程版本) 三部分组成 初始化 游戏开始 游戏数据统计 逐步完成,并阶段测试。 面向过程整体的思路:做一件事,分为多个步骤,每个步骤之间是有序的,最后按序完成。 面向过程的优缺点: 优点:符合人类思维,简

    2023年04月09日
    浏览(54)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包