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

map格式可以接收返回 fastjson2格式的数据 而不需要显示的转换

Fastjson2 JSONObjectMap 的关系

Fastjson2JSONObject 类定义如下:

public class JSONObject extends JSON implements Map<String, Object>, Cloneable {// 实现了 Map 接口的所有方法(put、get、keySet 等)
}

解释

  • JSONObject实现了 Map<String, Object> 接口,这意味着 JSONObject 本身就具备了 Map 接口所定义的所有方法(例如 putgetkeySet 等)。

  • 由于 JSONObject 已经实现了 Map 接口,它在大多数情况下可以直接作为 Map<String, Object> 类型来使用,而无需显式的类型转换。

如何理解这个设计

  1. JSONObject 就是一个 Map
    由于 JSONObject 实现了 Map<String, Object> 接口,它本身就是一个 Map 的实现类。因此,在任何需要 Map<String, Object> 类型的地方,都可以直接使用 JSONObject,无需显式转换类型。

  2. 内置的 Map 方法
    JSONObject 实现了 Map 接口,意味着你可以直接调用 JSONObjectputgetkeySet 等方法,就像在操作普通的 Map 一样。

举例说明

a. 变量赋值
JSONObject json = new JSONObject();
json.put("name", "Alice");
json.put("age", 30);Map<String, Object> map = json;  // 无需转换,直接赋值!
System.out.println(map.get("name")); // 输出:Alice

由于 JSONObject 实现了 Map 接口,可以直接将其赋值给 Map<String, Object> 类型的变量 map,无需任何强制类型转换。

b. 方法参数传递
public void processMap(Map<String, Object> data) {System.out.println(data.get("key"));
}processMap(new JSONObject());  // 无需转换,直接传递

如果方法接收的是 Map<String, Object> 类型的参数,你可以直接传入一个 JSONObject,因为它已经实现了 Map 接口。

JSONObject 可以直接作为 Map<String, Object> 使用,无需显式类型转换。

总结

  • 核心优势:由于 JSONObject 实现了 Map<String, Object> 接口,它可以直接作为 Map 使用,无需进行显式的转换。

  • 使用场景:在 Fastjson2 中,任何期望 Map<String, Object> 类型的操作都可以直接使用 JSONObject,提高了代码的简洁性和可读性。

http://www.xdnf.cn/news/442693.html

相关文章:

  • 占位符读取标准输入缓冲区规则
  • WEB安全--Java安全--CC1利用链
  • 生成式人工智能认证(GAI认证)官网 - 全国统一认证中文服务平台上线
  • [python] python中的魔法方法和属性
  • 【Python 异常处理】
  • 【c语言内存函数】
  • Kuka AI音乐AI音乐开发「人声伴奏分离」 —— 「Kuka Api系列|中文咬字清晰|AI音乐API」第6篇
  • 梯度优化提示词:模型生成精准回答的秘密
  • libmemcached库api接口讲解四
  • 反向搭理搭建于网络安全的分层关系讨论
  • 计算机网络-MPLS VPN基础概念
  • FlashInfer - 测试的GPU H100 SXM、A100 PCIe、RTX 6000 Ada、RTX 4090
  • 具身智能梳理以及展望
  • React Flow 简介:构建交互式流程图的最佳工具
  • 如何远程执行脚本不留痕迹
  • MCU ESP32-S3+SD NAND(贴片式T卡):智能皮电手环(GSR智能手环)性能与存储的深度评测
  • MoonBit正式入驻GitCode!AI时代的编程语言新星,开启高性能开发新纪元
  • LVS负载均衡群集和keepalive
  • Canvas知识框架
  • CSP信奥赛新增的算法-马拉车算法(Manacher‘s Algorithm)
  • 使用 Semantic Kernel 调用 Qwen-VL 多模态模型
  • YashanDB V23.4 LTS 正式发布|两地三中心、库级闪回重磅特性上线,生产级可用性再升级
  • docker(二)初识 docker
  • Rust入门之高级Trait
  • 机器学习 Day17 朴素贝叶斯算法-----概率论知识
  • 2025视频协作工具全景解析:技术跃迁与场景重构
  • 【Linux网络】认识网络
  • 编译openssl源码
  • 【软件工程】基于数据流和依赖分析
  • 商城小程序源码介绍