JsonElement 类

        JsonElement 是 Gson 库中的一个核心类,它是一个抽象类,代表着 JSON 字符串中的一个元素。这个元素可以是 JsonObjectJsonArray、基本数据类型的 JsonPrimitive,或者是 JsonNull。以下是 JsonElement 类的一些常用方法及其详细解释和代码案例:

1.isJsonObject()

  • 检查 JsonElement 是否是一个 JsonObject
  • 返回值:如果 JsonElement 是 JsonObject,则返回 true,否则返回 false
JsonElement element = JsonParser.parseString("{\"name\":\"John\", \"age\":30}");
if (element.isJsonObject()) {System.out.println("Element is a JsonObject");
}

2.isJsonArray()

  • 检查 JsonElement 是否是一个 JsonArray
  • 返回值:如果 JsonElement 是 JsonArray,则返回 true,否则返回 false
JsonElement element = JsonParser.parseString("[{\"name\":\"John\"}, {\"name\":\"Jane\"}]");
if (element.isJsonArray()) {System.out.println("Element is a JsonArray");
}

3.isJsonPrimitive()

  • 检查 JsonElement 是否是一个 JsonPrimitive
  • 返回值:如果 JsonElement 是 JsonPrimitive,则返回 true,否则返回 false
JsonElement element = JsonParser.parseString("123");
if (element.isJsonPrimitive()) {System.out.println("Element is a JsonPrimitive");
}

4.isJsonNull()

  • 检查 JsonElement 是否是 JsonNull
  • 返回值:如果 JsonElement 是 JsonNull,则返回 true,否则返回 false
JsonElement element = JsonParser.parseString("null");
if (element.isJsonNull()) {System.out.println("Element is JsonNull");
}

5.getAsJsonObject()

  • 如果 JsonElement 是一个 JsonObject,则返回对应的 JsonObject 对象。
  • 返回值:JsonObject 对象。
  • 异常:如果不是 JsonObject,则抛出 IllegalStateException
JsonElement element = JsonParser.parseString("{\"name\":\"John\", \"age\":30}");
JsonObject jsonObject = element.getAsJsonObject();
System.out.println(jsonObject.get("name").getAsString()); // 输出: John

6.getAsJsonArray()

  • 如果 JsonElement 是一个 JsonArray,则返回对应的 JsonArray 对象。
  • 返回值:JsonArray 对象。
  • 异常:如果不是 JsonArray,则抛出 IllegalStateException
JsonElement element = JsonParser.parseString("[{\"name\":\"John\"}, {\"name\":\"Jane\"}]");
JsonArray jsonArray = element.getAsJsonArray();
System.out.println(jsonArray.get(0).getAsJsonObject().get("name").getAsString()); // 输出: John

7.getAsJsonPrimitive()

  • 如果 JsonElement 是一个 JsonPrimitive,则返回对应的 JsonPrimitive 对象。
  • 返回值:JsonPrimitive 对象。
  • 异常:如果不是 JsonPrimitive,则抛出 IllegalStateException
JsonElement element = JsonParser.parseString("123");
JsonPrimitive jsonPrimitive = element.getAsJsonPrimitive();
System.out.println(jsonPrimitive.getAsString()); // 输出: 123

8.getAsString()

  • 如果 JsonElement 是一个 JsonPrimitive 并且它的值是字符串,则返回这个字符串。
  • 返回值:字符串值。
  • 异常:如果不是 JsonPrimitive 或者不是字符串,则抛出 IllegalStateException
JsonElement element = JsonParser.parseString("\"Hello World\"");
System.out.println(element.getAsString()); // 输出: Hello World

        这些方法提供了一种灵活的方式来处理 JSON 数据,允许你检查数据类型并相应地进行操作。在实际开发中,你可以根据需要选择合适的方法来处理不同的 JSON 数据结构。上述代码示例展示了如何使用这些方法来处理 JSON 数据,包括解析 JSON 字符串、检查数据类型、获取和操作 JSON 对象和数组的元素。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/451832.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

基于SpringBoot的“社区医院管理服务系统”的设计与实现(源码+数据库+文档+PPT)

基于SpringBoot的“社区医院管理服务系统”的设计与实现(源码数据库文档PPT) 开发语言:Java 数据库:MySQL 技术:SpringBoot 工具:IDEA/Ecilpse、Navicat、Maven 系统展示 系统首页界面图 用户注册界面图 医生界面…

OpenWRT 和 Padavan 路由器配置网络打印机 实现远程打印

本文首发于只抄博客,欢迎点击原文链接了解更多内容。 前言 之前有给大家介绍过 Armbian 安装 CUPS 作为打印服务器,像是 N1 盒子、玩客云,甚至是随身 WiFi 都可以通过 CUPS 来进行打印。但是有些朋友不想专门为打印机添置一个设备&#xff0…

jeecg3版本的vue,离线启动

jeecg的vue2版本已经停止维护,所以只能用vue3的版本。3版本中使用的是pnpm(npm的增强版本)下载依赖。使用pnpm安装的node_modules,不能直接复制到离线主机中(因为在 pnpm安装过程中,会给依赖的配置文件写死…

数据库、数据仓库、数据湖和数据中台有什么区别

很多企业在面对数据存储和管理时不知道如何选择合适的方式,数据库、数据仓库、数据湖和数据中台,这些方式都是什么?有什么样的区别?企业根据其业务类型该选择哪一种?本文就针对这些问题,来探讨下这些方式都…

React路由 基本使用 嵌套路由 动态路由 获取路由参数 异步路由 根据配置文件来生成路由

文章目录 React-router的三个版本react-router使用嵌套路由动态路由 获取路由参数Params参数Query参数Location信息 控制跳转地址异步路由根据配置文件生成路由 React-router的三个版本 React-router 服务端渲染使用React-router-dom 浏览器端渲染使用React-router-native Rea…

Electron入门笔记

Electron入门笔记 ElectronElectron 是什么Electron流程模型创建第一个Electron项目配置自动重启主进程和渲染进程通信打包应用 Electron Electron 是什么 跨平台的桌面应用开发框架使用 JavaScript、HTML 和 CSS 构建桌面应用程序的框架。 嵌入 Chromium和 Node.js Electro…

基于System.js的微前端实现(插件化)

目录​​​​​​​ 写在前面 一、微前端相关知识 (一)概念 (二) 优势 (三) 缺点 (四)应用场景 (五)现有框架 1. qiankun 2. single-spa 3. SystemJ…

机器学习课程学习周报十七

机器学习课程学习周报十七 文章目录 机器学习课程学习周报十七摘要Abstract一、机器学习部分1. 变分推断/推理1.1 证据下界1.2 q ( z ) {q(z)} q(z)的选取 2. VAE2.1 Auto-Encoder的简单回顾2.2 为什么提出VAE2.3 VAE的数学原理 3. Diffusion Model的数学原理3.1 Training算法…

【C语言】递归函数变量的作用域

变量的作用域 全局变量:在整个程序内可以识别,且唯一。 局部变量:仅在当前函数内有效,比如main函数、用户自定义函数。 递归函数 指的是一类函数,函数调用自身,包括递推和回归。使用递归的方式&#xff0c…

JavaWeb 19 AJAX

目录 一、什么是AJAX 同步交互和异步交互 同步交互 异步交互 Ajax工作原理 Ajax实现方式 原生JavaScript方式进行ajax(了解): "我就是希望你好,就像很多人希望我好一样,特别简单,特别真挚。也不为了什么,就是希望…

从0开始深度学习(14)——模型选择、欠拟合、过拟合

① 模型在训练数据上拟合的比在潜在分布中更接近的现象,就叫过拟合(overfitting) ② 用于对抗过拟合的技术称为正则化(regularization) 1 训练误差和泛化误差 ①训练误差(training error)&…

Gee引擎配置微端后登录游戏黑屏怎么办?

GEE引擎配置微端后登录游戏黑屏怎么办?今天飞飞和你们分享GEE引擎配置微端后游戏黑屏的解决办法,希望可以帮助到你~ 1、端口不对 微端没有更新,玩家进入游戏是地图跟装备都看不见,是漆黑的,微端显示连接失败&#xff…

c语言字符串函数strstr,strtok,strerror

1,strtok函数的使用和模拟实现 char * strtok(char * str,const char * sep) 会有static修饰变量,有记忆功能,会保存字符串的位置,下次找再继续找。 1)sep参数指向一个字符串,它包含了0个或者多个由sep字符中一个或…

极客wordpress模板

这是一个展示WordPress主题的网页设计。页面顶部有一个导航栏,包含多个选项,如“关于我们”、“产品中心”、“案例展示”、“新闻动态”、“联系我们”和“技术支持”。页面中间部分展示了多个产品,每个产品都有一个图片和简短的描述。页面下…

JUC并发编程进阶2:CompletableFuture

1 Future接口理论知识复习 Future接口(FutureTask实现类)定义了操作异步任务执行一些方法,如获取异步任务的执行结果、取消异步任务的执行、判断任务是否被取消、判断任务执行是否完毕等 举例:比如主线程让一个子线程去执行任务…

TCP(三次握手)和UDP(面向无连接)的原理以及区别

TCP(三次握手)和UDP(面向无连接)的原理以及区别 网络协议是每个前端工程师都必须要掌握的知识,TCP/IP 中有两个具有代表性的传输层协议。 概述 📡TCP(Transmission Control Protocol)是一种网络协议&#…

【opengles】笔记1:屏幕坐标与归一化坐标(NDC)的转换

参考资料 OpenGL希望在所有顶点着色器运行后,所有我们可见的顶点都变为标准化设备坐标(Normalized Device Coordinate, NDC)。也就是说,每个顶点的x,y,z坐标都应该在-1.0到1.0之间,超出这个坐标范围的顶点都将不可见。…

【Python】NumPy(二):数组运算、数据统计及切片索引、广播机制

目录 Numpy数组 数组的基本运算 乘法 加法 数组的数据统计 平均值 中位数 最大值和最小值 求和 累积和 标准差 方差 切片和索引 索引 一维数组的索引 二维数组的索引 获取多个元素 布尔索引 切片 一维数组切片 二维数组切片 多维数组切片 广播机制 规则 …

Seata序列化优化

Apache Seata(incubating) 是一款开源的分布式事务解决方案,致力于在微服务架构下提供高性能和简单易用的分布式事务服务。 本篇文章主要介绍Seata序列化实现优化。Seata对于网络传输数据,提供了多种序列化实现,包含Seata自身的序列化实现、…

一元n次多项式加法【数据结构-链表】

一元n次多项式定义如下: 其中Ai​为实数,i为不小于0的整数。在完成“一元n次多项式输入输出”题目的基础上实现一元n次多项式的加法。要求用链表实现上述一元n次多项式的操作。 输入格式: 有两个一元n次多项式,例如分别为: f(X)…