ChatGPT:使用fastjson读取JSON数据问题——如何使用com.alibaba.fastjson库读取JSON数据的特定字段

2023-09-18 16:21:38

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字段,您需要按照以下步骤进行操作:
  1. 导入FastJSON库。
  2. 使用FastJSON的JSONObject来解析JSON字符串。
  3. 获取data字段对应的JSONObject。
  4. 获取list字段对应的JSONArray。
  5. 获取数组中的第一个元素,然后获取其中的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字段对应的JSONObject
        JSONObject dataObject = jsonObject.getJSONObject("data");

        // 获取list字段对应的JSONArray
        JSONArray 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字段对应的JSONObject
        JSONObject dataObject = jsonObject.getJSONObject("data");

        // 获取list字段对应的JSONArray
        JSONArray 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库。

更多推荐

OpenResty使用漏桶算法实现限流

前言其它项目组需要调用接口,添加接口限流,防止项目被狂掉宕机。生产用了openresty,所以在openresty上添加按接口限流,同时,需按照不同接口有不同的限流规则,使用openresty中内置的漏桶算法方式限流。漏桶算法漏桶算法思路简单,水(请求)先进入到漏桶里,漏桶以一定的速度出水,当水流入速度过大会直接溢出,

BENTLY 350015 127610-01数字量输入模块

数字输入功能:BENTLY350015127610-01模块通常用于监测和采集数字输入信号,例如开关状态、传感器状态等。多通道:这些模块通常具有多个输入通道,允许同时监测多个数字输入信号。高精度:BENTLY350015127610-01模块提供高精度的信号采集,以确保准确的数据记录和分析。实时监测:具备实时监测功能,

pdf怎么压缩的小一点?pdf文件压缩方法汇总

在日常生活中,我们常常需要处理大量的PDF文件。有时候,这些PDF文件可能因为内容丰富、结构复杂而体积庞大,给我们的存储和传输带来了不便。那么,如何将这些PDF文件压缩得小一点,以便更方便地使用呢?一、嗨格式压缩大师嗨格式压缩大师是一款专业的文件压缩工具,支持图片、视频和PDF等各类文件的压缩,使用它压缩PDF文件,可

机器学习——pca降维/交叉验证/网格交叉验证

1、pca降维:目的是提升模型训练速度定义:使用方法:给训练数据或者测试数据进行降维处理给训练数据降维给测试数据降维:这里1就要用transform,而不是fit_transform,因为之前训练数据降维时特征已经确定,测试数据提取的特征要和训练数据保持一致。2、交叉验证:目的是保证模型的测试数据和训练数据划分清楚,从

[2023.09.12]: Yew应用开发的第一个hook--use_state

Yew的SSR模式推荐使用function_component组件,并且在function_component中使用hooks。其中,我使用到的第一个hook是use_state。use_state的设计意图与React中的useState非常相似,都是为了保存并修改当前的状态。然而,由于Yew是用Rust语言实现的,

算法leetcode|83. 删除排序链表中的重复元素(rust重拳出击)

文章目录83.删除排序链表中的重复元素:样例1:样例2:提示:分析:题解:rust:go:c++:python:java:83.删除排序链表中的重复元素:给定一个已排序的链表的头head,删除所有重复的元素,使每个元素只出现一次。返回已排序的链表。样例1:输入:head=[1,1,2]输出:[1,2]样例2:输入:he

汽车三高试验离不开的远程试验管理平台-TFM

随着信息技术的高速发展,企业对远程试验实时监控与数据管理的需求日益增强。而利用远程试验信息协同技术,可突破部门与地域的限制,并把试验现场的车辆状态信息、试验数据和分析结果实时传输给数据分析部门和设计部门等,从而缩短时间与空间的距离,让技术人员与现场试验人员实现实时远程交互、协同分析和技术协调,同时还有利于提高试验效率、

国产视觉检测设备崛起,以AI机器视觉及自研算法破解智造难题

机器视觉作为人工智能的前沿分支之一,被称为智能制造的“智慧之眼”,在工业领域中,能够代替人工完成识别、测量、定位、检测等工作,以实现对设备精密控制及产线智能化、自动化升级。同时,深度学习和3D视觉的技术升级,实现了对传统机器视觉算法进一步优化并提供了丰富维度的信息。深眸科技整合相关技术,创新研发AI驱动的2D/3D视觉

民安智库(北京第三方窗口测评)开展汽车消费者焦点小组座谈会调查

民安智库近日开展了一场汽车消费者焦点小组座谈会,旨在深入了解目标消费者对汽车功能的需求和消费习惯,为汽车企业提供有针对性的解决方案。在焦点小组座谈会中,民安智库公司(第三方市容环境指数测评)邀请了一群具有代表性的汽车消费者作为参与者。他们来自不同年龄段、职业背景和地域分布,以确保调查结果的多样性和代表性。座谈会采用了开

智能家居产品公司网站源码,自适应布局设计,带完整演示数据

适合各类智能家居电子产品使用的网站源码,深色大气设计,自适应布局设计,pc手机均可完美适配,带完整演示数据。独家原创资源。源码是asp开发的,数据库是access,主流的虚拟主机空间都支持asp,直接上传就可以使用。源码完整可用,因为都是我自己开发的,测试过了。网站都是站长之前自己帮客户开发了,现在拿出来分享给各位,希

【Oracle】Oracle系列之四--用户管理

文章目录往期回顾前言1.创建/删除用户(1)创建用户(2)修改口令(3)删除用户2.用户授权管理(1)对用户直接授权(2)通过角色对用户授权往期回顾【Oracle】Oracle系列–Oracle数据类型【Oracle】Oracle系列之二–Oracle数据字典【Oracle】Oracle系列之三–Oracle字符集前言

热文推荐