ChatGPT:使用fastjson读取JSON数据问题——如何使用com.alibaba.fastjson库读取JSON数据的特定字段
ChatGPT:使用fastjson读取JSON数据问题——如何使用com.alibaba.fastjson库读取JSON数据的特定字段
有一段Json字符串:
{"code": 200,"message": "success","data": {"total": "1","list": [{"question_no": "215202","question_stem": "师生进入生化类实验室工作,一定要搞清楚( )等位置,出现情况能做好相应的自救工作。","v_establish_date": "2021-07-02","professional_level_id": "01","professional_level": "通识类","knowledge_point_id": "71","knowledge_point": "实验室安全","question_type_id": "01","question_type": "单选题","user_id": null,"user_name": null,"q_college": "学校","q_college_id": "%","numrow": "1","act": {"questionDelete": "删除","questionModify": "修改","getQuestionDetail": "查看","copyQuestion": "复制到本单位题库"}}]} }怎么结合com.alibaba的fastjson读取到question_no?
ChatGPT:
要使用阿里巴巴的FastJSON库来解析JSON字符串并提取其中的question_no字段,您需要按照以下步骤进行操作:
-
导入FastJSON库。
-
使用FastJSON的
JSONObject来解析JSON字符串。 -
获取
data字段对应的JSONObject。 -
获取
list字段对应的JSONArray。 -
获取数组中的第一个元素,然后获取其中的
question_no字段。
以下是示例代码:
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;public class Main {public static void main(String[] args) {String jsonString = "{\n" +" \"code\": 200,\n" +" \"message\": \"success\",\n" +" \"data\": {\n" +" \"total\": \"1\",\n" +" \"list\": [\n" +" {\n" +" \"question_no\": \"215202\",\n" +" \"question_stem\": \"师生进入生化类实验室工作,一定要搞清楚( )等位置,出现情况能做好相应的自救工作。\",\n" +" \"v_establish_date\": \"2021-07-02\",\n" +" \"professional_level_id\": \"01\",\n" +" \"professional_level\": \"通识类\",\n" +" \"knowledge_point_id\": \"71\",\n" +" \"knowledge_point\": \"实验室安全\",\n" +" \"question_type_id\": \"01\",\n" +" \"question_type\": \"单选题\",\n" +" \"user_id\": null,\n" +" \"user_name\": null,\n" +" \"q_college\": \"学校\",\n" +" \"q_college_id\": \"%\",\n" +" \"numrow\": \"1\",\n" +" \"act\": {\n" +" \"questionDelete\": \"删除\",\n" +" \"questionModify\": \"修改\",\n" +" \"getQuestionDetail\": \"查看\",\n" +" \"copyQuestion\": \"复制到本单位题库\"\n" +" }\n" +" }\n" +" ]\n" +" }\n" +"}";// 使用FastJSON解析JSON字符串JSONObject jsonObject = JSON.parseObject(jsonString);// 获取data字段对应的JSONObjectJSONObject dataObject = jsonObject.getJSONObject("data");// 获取list字段对应的JSONArrayJSONArray listArray = dataObject.getJSONArray("list");// 获取数组中的第一个元素JSONObject firstElement = listArray.getJSONObject(0);// 获取question_no字段的值String questionNo = firstElement.getString("question_no");System.out.println("question_no: " + questionNo);}
}
上述代码将打印出question_no字段的值"215202"。您可以根据实际需求进行进一步处理或存储。确保在项目中导入FastJSON库以使上述代码正常工作。
得到的Json字符串是这样的怎么办?
{"code":200,"message":"success","data":{"total":"1","list":[{"question_no":"215202","question_stem":"\u5e08\u751f\u8fdb\u5165\u751f\u5316\u7c7b\u5b9e\u9a8c\u5ba4\u5de5\u4f5c\uff0c\u4e00\u5b9a\u8981\u641e\u6e05\u695a\uff08\u3000\uff09\u7b49\u4f4d\u7f6e\uff0c\u51fa\u73b0\u60c5\u51b5\u80fd\u505a\u597d\u76f8\u5e94\u7684\u81ea\u6551\u5de5\u4f5c\u3002","v_establish_date":"2021-07-02","professional_level_id":"01","professional_level":"\u901a\u8bc6\u7c7b","knowledge_point_id":"71","knowledge_point":"\u5b9e\u9a8c\u5ba4\u5b89\u5168","question_type_id":"01","question_type":"\u5355\u9009\u9898","user_id":null,"user_name":null,"q_college":"\u5b66\u6821","q_college_id":"%","numrow":"1","act":{"questionDelete":"\u5220\u9664","questionModify":"\u4fee\u6539","getQuestionDetail":"\u67e5\u770b","copyQuestion":"\u590d\u5236\u5230\u672c\u5355\u4f4d\u9898\u5e93"}}]}}
ChatGPT:
您提供的JSON字符串包含Unicode编码字符,这是一种在JSON中表示特殊字符的方式。在FastJSON中,您可以使用JSON.parseObject方法来解析这样的JSON字符串,FastJSON会自动处理Unicode编码字符。
以下是如何解析包含Unicode编码字符的JSON字符串的示例代码:
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;public class Main {public static void main(String[] args) {String jsonString = "{\"code\":200,\"message\":\"success\",\"data\":{\"total\":\"1\",\"list\":[{\"question_no\":\"215202\",\"question_stem\":\"\\u5e08\\u751f\\u8fdb\\u5165\\u751f\\u5316\\u7c7b\\u5b9e\\u9a8c\\u5ba4\\u5de5\\u4f5c\\uff0c\\u4e00\\u5b9a\\u8981\\u641e\\u6e05\\u695a\\uff08\\u3000\\uff09\\u7b49\\u4f4d\\u7f6e\\uff0c\\u51fa\u73b0\u60c5\u51b5\u80fd\u505a\u597d\u76f8\u5e94\u7684\u81ea\u6551\u5de5\u4f5c\\u3002\",\"v_establish_date\":\"2021-07-02\",\"professional_level_id\":\"01\",\"professional_level\":\"\\u901a\\u8bc6\\u7c7b\",\"knowledge_point_id\":\"71\",\"knowledge_point\":\"\\u5b9e\\u9a8c\\u5ba4\\u5b89\\u5168\",\"question_type_id\":\"01\",\"question_type\":\"\\u5355\\u9009\\u9898\",\"user_id\":null,\"user_name\":null,\"q_college\":\"\\u5b66\\u6821\",\"q_college_id\":\"%\",\"numrow\":\"1\",\"act\":{\"questionDelete\":\"\\u5220\\u9664\",\"questionModify\":\"\\u4fee\\u6539\",\"getQuestionDetail\":\"\\u67e5\\u770b\",\"copyQuestion\":\"\\u590d\\u5236\\u5230\\u672c\\u5355\\u4f4d\\u9898\\u5e93\"}}]}}";// 使用FastJSON解析JSON字符串JSONObject jsonObject = JSON.parseObject(jsonString);// 获取data字段对应的JSONObjectJSONObject dataObject = jsonObject.getJSONObject("data");// 获取list字段对应的JSONArrayJSONArray listArray = dataObject.getJSONArray("list");// 获取数组中的第一个元素JSONObject firstElement = listArray.getJSONObject(0);// 获取question_no字段的值String questionNo = firstElement.getString("question_no");System.out.println("question_no: " + questionNo);}
}
这个示例代码会正确解析包含Unicode编码字符的JSON字符串,并提取question_no字段的值。再次提醒确保在项目中导入FastJSON库。
相关文章:
ChatGPT:使用fastjson读取JSON数据问题——如何使用com.alibaba.fastjson库读取JSON数据的特定字段
ChatGPT:使用fastjson读取JSON数据问题——如何使用com.alibaba.fastjson库读取JSON数据的特定字段 有一段Json字符串: {"code": 200,"message": "success","data": {"total": "1","l…...
2、ARM处理器概论
一、ARM处理器概述 1、ARM的含义 ARM(Advanced RISC Machines)有三种含义,一个公司的名称、一类处理器的通称、一种技术 ARM公司: 成立于1990年11月,前身为Acorn计算机公司主要设计ARM系列RISC处理器内核授权ARM内…...
【Python】福利彩票复式模拟选号程序
【效果】 【注意】 逻辑是用Random模拟10000次复试彩票选号,然后给出最大可能性一组。但是模拟终究是模拟,和现实彩票结果没有任何联系,下载下来玩就是了,没人能保证模拟出中奖号码,不要投机,不要投机! 【修改】 代码很简单,如果想改成不是复式的,自行修改即可。 如…...
Pytorch 机器学习专业基础知识+神经网络搭建相关知识
文章目录 一、三种学习方式二、机器学习的一些专业术语三、模型相关知识四、常用的保留策略五、数据处理六、解决过拟合与欠拟合七、成功的衡量标准 一、三种学习方式 有监督学习: 1、分类问题 2、回归问题 3、图像分割 4、语音识别 5、语言翻译 无监督学习 1、聚类…...
torch 和paddle 的GPU版本可以放在同一个conda环境下吗
新建conda 虚拟环境,python 版本3.8.17 虚拟机,系统centos 7,内核版本Linux fastknow 3.10.0-1160.92.1.el7.x86_64 ,显卡T4,nvidia-smi ,460.32.03,对应cuda 11.2,安装cuda 11.2和cudnn,conda…...
MYBATIS-PLUS入门使用、踩坑记录
转载: mybatis-plus入门使用、踩坑记录 - 灰信网(软件开发博客聚合) 首先引入MYBATIS-PLUS依赖: SPRING BOOT项目: <dependency><groupId>com.baomidou</groupId><artifactId>mybatis-plus…...
C# 静态类和sealed类(密封类)的区别
网上看到很多文章写静态类,和密封类,但是鲜有它们的对比总结,在此简单总结一下: 静态类(Static Class): 静态类不能被实例化,其成员都是静态的,可以通过类名直接访问。静…...
el-table如何实现自动缩放,提示隐藏内容
前提问题:大屏展示中某一个区域是表格内容,当放大或缩小网页大小时,表格宽度随之缩放,但表格内容未进行缩放,需要表格内容与网页大小同时进行缩放,且表头和表格内容宽度不够未显示全时,需要进行…...
CRM客户管理软件对出海企业的帮助与好处
2023我们走出了疫情的阴霾,经济下行压力大,面对内需的不足,国内企业纷纷选择出海,拓展海外业务增加企业营收。企业出海不是一件易事,有了CRM系统可以让公司事半功倍,下面就来说一说CRM客户管理软件能为出海…...
【QT--使用百度地图API显示地图并绘制路线】
QT--使用百度地图API显示地图并绘制路线 前言准备工作申请百度地图密钥(AK)安装开发环境 开发过程新建项目ui界面GPSManager类主窗口Map 效果展示 前言 先吐槽一下下,本身qt学的就不咋滴,谁想到第一件事就是让写一个上位机工具,根据CAN总线传…...
C数据结构二.练习题
一.求级数和 2.求最大子序列问题:设给定一个整数序列 ai.az..,a,(可能有负数).设计一个穷举算法,求a 的最大值。例如,对于序列 A {1,-1,1,-1,-1,1,1,1,1.1,-1,-1.1,-1,1,-1},子序列 A[5..9](1,1,1,1,1)具有最大值5 3.设有两个正整数 m 和n,编写一个算法 gcd(m,n),求它们的最大公…...
猫头虎博主第5️⃣期赠书活动:《Java官方编程手册(第12版·Java 17)套装上下册》
🌷🍁 博主猫头虎(🐅🐾)带您 Go to New World✨🍁 🦄 博客首页——🐅🐾猫头虎的博客🎐 🐳 《面试题大全专栏》 🦕 文章图文…...
(1)数据库 MSQ 数据库 安装 使用 以及增删改查
下载官网:MySQL :: Download MySQL Shell 常见的数据库分为: 关系型数据库, Oracle、MySQL、SQLServer、Access非关系型数据库, MongoDB、Redis、Solr、ElasticSearch、Hive、HBase 安装过程 使用过程...
什么测试自动化测试?
什么测试自动化测试? 做测试好几年了,真正学习和实践自动化测试一年,自我感觉这一个年中收获许多。一直想动笔写一篇文章分享自动化测试实践中的一些经验。终于决定花点时间来做这件事儿。 首先理清自动化测试的概念,广义上来讲&a…...
【踩坑篇】代码中使用 Long 作为 Map的Key存在的问题
本周的工作结束,详述一些在项目代码中实际遇到的一些坑。 代码中遇到这样一个场景: 有个业务接口,接口返回的值是一个JSON格式的字符串,通过JSON解析的方式,解析为格式为: Map<Long, Map<String, O…...
微服务保护-授权规则/规则持久化
授权规则 基本规则 授权规则可以对调用方的来源做控制,有白名单和黑名单两种方式。 白名单:来源(origin)在白名单内的调用者允许访问 黑名单:来源(origin)在黑名单内的调用者不允许访问 点…...
练习敲代码速度
2023年9月18日,周一晚上 今晚不想学习,但又不想玩游戏,于是找了一些练习敲代码的网站来玩玩,顺便练习一下敲代码的速度 目录 参考资料个人推荐第一个 第二个第三个 参考资料 电脑打字慢,有哪些比较好的练打字软件&a…...
uni-app:实现条件判断展示图片(函数判定+三目运算)
一、多条件判断(通过函数进行图片展示) 效果 代码 在data中定义图片信息和要传递的数据信息,在src中写入函数并携带要传递的数据,通过传递的数据在函数中进行判断,并返回对应的图片信息 <template><view&…...
http概念
概念:HTTP,hyper text transfer protocol,超文本传输协议,规定了浏览器和服务器之间数据传输的规则。 特点: 1.基于TCP协议:面向连接,安全。 2.基于请求-响应模型的:一次请求对应一…...
Postman应用——Variable变量使用(Global、Environment和Collection)
文章目录 变量的使用同名变量优先级Postman内置变量 Global、Environment和Collection变量设置,点击查看。 变量的使用 语法: {{变量名}}使用{{}}包裹变量名,引用设置好的变量。 注意:Environment变量引用前需要先选择已有的环…...
挑战杯推荐项目
“人工智能”创意赛 - 智能艺术创作助手:借助大模型技术,开发能根据用户输入的主题、风格等要求,生成绘画、音乐、文学作品等多种形式艺术创作灵感或初稿的应用,帮助艺术家和创意爱好者激发创意、提高创作效率。 - 个性化梦境…...
【第二十一章 SDIO接口(SDIO)】
第二十一章 SDIO接口 目录 第二十一章 SDIO接口(SDIO) 1 SDIO 主要功能 2 SDIO 总线拓扑 3 SDIO 功能描述 3.1 SDIO 适配器 3.2 SDIOAHB 接口 4 卡功能描述 4.1 卡识别模式 4.2 卡复位 4.3 操作电压范围确认 4.4 卡识别过程 4.5 写数据块 4.6 读数据块 4.7 数据流…...
大语言模型如何处理长文本?常用文本分割技术详解
为什么需要文本分割? 引言:为什么需要文本分割?一、基础文本分割方法1. 按段落分割(Paragraph Splitting)2. 按句子分割(Sentence Splitting)二、高级文本分割策略3. 重叠分割(Sliding Window)4. 递归分割(Recursive Splitting)三、生产级工具推荐5. 使用LangChain的…...
Keil 中设置 STM32 Flash 和 RAM 地址详解
文章目录 Keil 中设置 STM32 Flash 和 RAM 地址详解一、Flash 和 RAM 配置界面(Target 选项卡)1. IROM1(用于配置 Flash)2. IRAM1(用于配置 RAM)二、链接器设置界面(Linker 选项卡)1. 勾选“Use Memory Layout from Target Dialog”2. 查看链接器参数(如果没有勾选上面…...
04-初识css
一、css样式引入 1.1.内部样式 <div style"width: 100px;"></div>1.2.外部样式 1.2.1.外部样式1 <style>.aa {width: 100px;} </style> <div class"aa"></div>1.2.2.外部样式2 <!-- rel内表面引入的是style样…...
【服务器压力测试】本地PC电脑作为服务器运行时出现卡顿和资源紧张(Windows/Linux)
要让本地PC电脑作为服务器运行时出现卡顿和资源紧张的情况,可以通过以下几种方式模拟或触发: 1. 增加CPU负载 运行大量计算密集型任务,例如: 使用多线程循环执行复杂计算(如数学运算、加密解密等)。运行图…...
10-Oracle 23 ai Vector Search 概述和参数
一、Oracle AI Vector Search 概述 企业和个人都在尝试各种AI,使用客户端或是内部自己搭建集成大模型的终端,加速与大型语言模型(LLM)的结合,同时使用检索增强生成(Retrieval Augmented Generation &#…...
React---day11
14.4 react-redux第三方库 提供connect、thunk之类的函数 以获取一个banner数据为例子 store: 我们在使用异步的时候理应是要使用中间件的,但是configureStore 已经自动集成了 redux-thunk,注意action里面要返回函数 import { configureS…...
Linux离线(zip方式)安装docker
目录 基础信息操作系统信息docker信息 安装实例安装步骤示例 遇到的问题问题1:修改默认工作路径启动失败问题2 找不到对应组 基础信息 操作系统信息 OS版本:CentOS 7 64位 内核版本:3.10.0 相关命令: uname -rcat /etc/os-rele…...
MFC 抛体运动模拟:常见问题解决与界面美化
在 MFC 中开发抛体运动模拟程序时,我们常遇到 轨迹残留、无效刷新、视觉单调、物理逻辑瑕疵 等问题。本文将针对这些痛点,详细解析原因并提供解决方案,同时兼顾界面美化,让模拟效果更专业、更高效。 问题一:历史轨迹与小球残影残留 现象 小球运动后,历史位置的 “残影”…...
