当前位置: 首页 > news >正文

网站建设创业计划书淘宝店铺推广

网站建设创业计划书,淘宝店铺推广,企业建设网站的优势,免费如何创建网站平台提取值 JsonUtils工具类提供了一个extractValue方法,用于从JSON数据中提取特定字段的值。该方法支持返回单一值或值列表,具体取决于JSON数据中字段的类型。 /*** 从 JSON 数据中提取值** param jsonData JSON 数据字符串* param field 字段名称* re…

提取值

JsonUtils工具类提供了一个extractValue方法,用于从JSON数据中提取特定字段的值。该方法支持返回单一值或值列表,具体取决于JSON数据中字段的类型。

/*** 从 JSON 数据中提取值** @param jsonData JSON 数据字符串* @param field    字段名称* @return 提取到的值,如果是列表则返回列表*/
public static Object extractValue(String jsonData, String field) {try {ObjectMapper objectMapper = new ObjectMapper();JsonNode jsonNode = objectMapper.readTree(jsonData);// 使用 JsonNode.at 方法获取指定路径的节点JsonNode targetNode = jsonNode.at(field);// 如果节点是列表,将列表转换为 Java Listif (targetNode.isArray()) {List<String> values = new ArrayList<>();Iterator<JsonNode> elements = targetNode.elements();while (elements.hasNext()) {values.add(elements.next().asText());}return values;} else {// 如果节点不是列表,直接返回节点的文本值return targetNode.asText();}} catch (Exception e) {e.printStackTrace();return null;}
}

示例用法

为了演示JsonUtils的使用,提供了一个简单的示例。以下是一个包含姓名、年龄和爱好的JSON数据:

{"root": {"person": {"name": "坤坤","age": 99,"hobbies": ["唱跳", "rap"]}}
}
public static void main(String[] args) {// JSON 数据示例,包含列表String jsonData ="""{"root": {"person": {"name": "坤坤","age": 99,"hobbies": ["唱跳", "rap"]}}}""";// 使用工具类提取数据String name = String.valueOf(extractValue(jsonData, "/root/person/name"));Double age = Double.valueOf(String.valueOf(extractValue(jsonData, "/root/person/age")));List hobbies = (List) extractValue(jsonData, "/root/person/hobbies");// 输出提取到的数据System.out.println("Name: " + name);System.out.println("Age: " + age);if (hobbies != null) {System.out.println(hobbies.size());System.out.println("Hobbies: " + hobbies);} else {System.out.println("Hobbies: " + null);}
}

在此示例中,展示了如何使用JsonUtils从JSON数据中提取姓名、年龄和爱好。JsonUtils能够适应不同类型的字段,并返回相应的Java对象。
完整代码:

package com.lfsun.json.util;import com.fasterxml.jackson.databind.JsonNode;
import com.fasterxml.jackson.databind.ObjectMapper;import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;/*** JsonUtils 是一个使用 Jackson 处理 JSON 数据的工具类。** @author Administrator*/
public class JsonUtils {/*** 从 JSON 数据中提取值** @param jsonData JSON 数据字符串* @param field    字段名称* @return 提取到的值,如果是列表则返回列表*/public static Object extractValue(String jsonData, String field) {try {ObjectMapper objectMapper = new ObjectMapper();JsonNode jsonNode = objectMapper.readTree(jsonData);// 使用 JsonNode.at 方法获取指定路径的节点JsonNode targetNode = jsonNode.at(field);// 如果节点是列表,将列表转换为 Java Listif (targetNode.isArray()) {List<String> values = new ArrayList<>();Iterator<JsonNode> elements = targetNode.elements();while (elements.hasNext()) {values.add(elements.next().asText());}return values;} else {// 如果节点不是列表,直接返回节点的文本值return targetNode.asText();}} catch (Exception e) {e.printStackTrace();return null;}}public static void main(String[] args) {// JSON 数据示例,包含列表String jsonData ="""{"root": {"person": {"name": "坤坤","age": 99,"hobbies": ["唱跳", "rap"]}}}""";// 使用工具类提取数据String name = String.valueOf(extractValue(jsonData, "/root/person/name"));Double age = Double.valueOf(String.valueOf(extractValue(jsonData, "/root/person/age")));List hobbies = (List) extractValue(jsonData, "/root/person/hobbies");// 输出提取到的数据System.out.println("Name: " + name);System.out.println("Age: " + age);if (hobbies != null) {System.out.println(hobbies.size());System.out.println("Hobbies: " + hobbies);} else {System.out.println("Hobbies: " + null);}}
}

依赖:

<dependency><groupId>com.fasterxml.jackson.core</groupId><artifactId>jackson-databind</artifactId>
</dependency>
http://www.dtcms.com/a/506773.html

相关文章:

  • 华为鲲鹏 Aarch64 环境下多 Oracle 、mysql数据库汇聚到Cloudera CDP7.3操作指南
  • numpy中的meshgrid()的用法
  • 【C++高阶数据结构】红黑树
  • 最近我用springBoot开发了一个二手交易管理系统,分享一下实现方式~
  • 基础开发工具(中)
  • 朝阳网站开发wordpress 访问地址修改
  • windows共享目录
  • 【完整源码+数据集+部署教程】【零售和消费品&家居用品】家庭门窗开闭状态安全监控系统源码&数据集全套:改进yolo11-DCNV2
  • 信誉楼与数图信息科技强强联合,共绘“数智赋能零售新生态”蓝图
  • 衡阳网站优化外包价格百度人工服务
  • 前端-Node.js
  • DevOps 生命周期完全指南
  • 掌握 Kubernetes 的可观测性 (Tracestore)、安全性 (OPA)、自动化 (Flagger) 和自定义指标
  • 【AI】Dify循环用法,判断jenkins构建是否完成
  • 前端与后端 Node.js 比较
  • 架起EtherCAT与PROFINET的桥梁:实现全域电机设备的安全联控
  • 软件网站建设的目的2018年怎样做淘宝客网站
  • 铁岭建设网站商城域名注册多少钱
  • 从6G到Wi-Fi 7 中国或将迎来6GHz开放窗口期
  • FreeCut:一个支持PDF自适应裁剪的PPT插件
  • 【SPIE/EI/Scopus检索】2026 年第三届数据挖掘与自然语言处理国际会议 (DMNLP 2026)
  • Vue 概述以及基本使用
  • Nature Genetics|空间蛋白组联合空间转录组发现非小细胞肺癌免疫治疗响应的预测标志物
  • 2025-ICML-Enhancing Spectral GNNs: From Topology and Perturbation Perspectives
  • Mac版PDF Squeezer v4.5.1安装教程(DMG文件下载+详细步骤)​
  • PDF处理控件Aspose.PDF教程:在C#中将PDF转换为Base64
  • 《恋爱先生》电视剧总结
  • Spring Boot实现日志链路追踪
  • 孝义网站建设南京网站销售
  • 网站后台都有哪些青海网站建设价格