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变量引用前需要先选择已有的环…...

.Net框架,除了EF还有很多很多......
文章目录 1. 引言2. Dapper2.1 概述与设计原理2.2 核心功能与代码示例基本查询多映射查询存储过程调用 2.3 性能优化原理2.4 适用场景 3. NHibernate3.1 概述与架构设计3.2 映射配置示例Fluent映射XML映射 3.3 查询示例HQL查询Criteria APILINQ提供程序 3.4 高级特性3.5 适用场…...
Unit 1 深度强化学习简介
Deep RL Course ——Unit 1 Introduction 从理论和实践层面深入学习深度强化学习。学会使用知名的深度强化学习库,例如 Stable Baselines3、RL Baselines3 Zoo、Sample Factory 和 CleanRL。在独特的环境中训练智能体,比如 SnowballFight、Huggy the Do…...

深入解析C++中的extern关键字:跨文件共享变量与函数的终极指南
🚀 C extern 关键字深度解析:跨文件编程的终极指南 📅 更新时间:2025年6月5日 🏷️ 标签:C | extern关键字 | 多文件编程 | 链接与声明 | 现代C 文章目录 前言🔥一、extern 是什么?&…...

均衡后的SNRSINR
本文主要摘自参考文献中的前两篇,相关文献中经常会出现MIMO检测后的SINR不过一直没有找到相关数学推到过程,其中文献[1]中给出了相关原理在此仅做记录。 1. 系统模型 复信道模型 n t n_t nt 根发送天线, n r n_r nr 根接收天线的 MIMO 系…...

使用 SymPy 进行向量和矩阵的高级操作
在科学计算和工程领域,向量和矩阵操作是解决问题的核心技能之一。Python 的 SymPy 库提供了强大的符号计算功能,能够高效地处理向量和矩阵的各种操作。本文将深入探讨如何使用 SymPy 进行向量和矩阵的创建、合并以及维度拓展等操作,并通过具体…...
在web-view 加载的本地及远程HTML中调用uniapp的API及网页和vue页面是如何通讯的?
uni-app 中 Web-view 与 Vue 页面的通讯机制详解 一、Web-view 简介 Web-view 是 uni-app 提供的一个重要组件,用于在原生应用中加载 HTML 页面: 支持加载本地 HTML 文件支持加载远程 HTML 页面实现 Web 与原生的双向通讯可用于嵌入第三方网页或 H5 应…...

AirSim/Cosys-AirSim 游戏开发(四)外部固定位置监控相机
这个博客介绍了如何通过 settings.json 文件添加一个无人机外的 固定位置监控相机,因为在使用过程中发现 Airsim 对外部监控相机的描述模糊,而 Cosys-Airsim 在官方文档中没有提供外部监控相机设置,最后在源码示例中找到了,所以感…...

PHP 8.5 即将发布:管道操作符、强力调试
前不久,PHP宣布了即将在 2025 年 11 月 20 日 正式发布的 PHP 8.5!作为 PHP 语言的又一次重要迭代,PHP 8.5 承诺带来一系列旨在提升代码可读性、健壮性以及开发者效率的改进。而更令人兴奋的是,借助强大的本地开发环境 ServBay&am…...
Oracle11g安装包
Oracle 11g安装包 适用于windows系统,64位 下载路径 oracle 11g 安装包...
上位机开发过程中的设计模式体会(1):工厂方法模式、单例模式和生成器模式
简介 在我的 QT/C 开发工作中,合理运用设计模式极大地提高了代码的可维护性和可扩展性。本文将分享我在实际项目中应用的三种创造型模式:工厂方法模式、单例模式和生成器模式。 1. 工厂模式 (Factory Pattern) 应用场景 在我的 QT 项目中曾经有一个需…...