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

Json解析流程

一、拿到了题库

分析一下可以定义的

1、序号,用来区分题目数,每个题有唯一的序号

2、题目,就是下图的Q

3、预设的回答,下图的A

 分析完我可以知道有三个字段,分别是int index、string Q、string A。

二、把字段丢到Excel表格里

 第一行写字段,下面再写数据

 三、通过一些工具把Excel转化成Json文件

这个是我常用的,把Excel丢进去就好    

可以看到生成的Json文件是这样的

 看着稍微有点乱,可以用格式化工具调整一下

这是我常用的格式化工具

在线JSON校验格式化工具(Be JSON)

 

 这样就可以清晰分辨我们的题目和预设回答了,一些小调整也可以直接在这里处理

 四、改Json文件

新建一个txt文本,把刚刚生成的数据全部粘贴进文本里,并把后缀改成.json

这样就是一个合格的Json文件了

 五、生成C#类

还是刚刚那个网站,找到Json转C#实体类,把你的Json文件丢进去他就能帮你生成一个C#类

 在Unity里新建一个QAData类,复制这些生成的这些就好了(生成的一般都是Root,改成自己的类)。

 六、Json解析

using Newtonsoft.Json;
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.Events;
using UnityEngine.Networking;public class Test : MonoBehaviour
{void Start(){StartCoroutine(LoadJson(Application.streamingAssetsPath + "/QA.json",JsonHandle));}/// <summary>/// 处理Json数据/// </summary>void JsonHandle(string jsonData) {Debug.Log(jsonData);QAData qAData = JsonConvert.DeserializeObject<QAData>(jsonData);Debug.Log(" 共有" + qAData.QA.Count + "题");foreach (var item in qAData.QA){Debug.Log(item.index); Debug.Log(item.Q); Debug.Log(item.A);}}/// <summary>/// 读取Json数据/// </summary>/// <param name="path"></param>/// <param name="action"></param>/// <returns></returns>IEnumerator LoadJson(string path,UnityAction<string> action = null){// 提取Json文件UnityWebRequest www = UnityWebRequest.Get(path);yield return www.SendWebRequest();if (www.result == UnityWebRequest.Result.Success){string jsonString = www.downloadHandler.text;action?.Invoke(jsonString);}else{Debug.Log("读取失败");}}
}

 这样就全部拆出来了,答题系统也是一样的思路。

 这样做的好处是,当需要外部去修改题库时也无需重新打包,直接改Json文件就好了

相关文章:

Json解析流程

一、拿到了题库 分析一下可以定义的 1、序号&#xff0c;用来区分题目数&#xff0c;每个题有唯一的序号 2、题目&#xff0c;就是下图的Q 3、预设的回答&#xff0c;下图的A 分析完我可以知道有三个字段&#xff0c;分别是int index、string Q、string A。 二、把字段丢到…...

Mybatis 动态SQL – 使用choose标签动态生成条件语句

之前我们介绍了if,where标签的使用&#xff1b;本篇我们需要在if,where标签的基础上介绍如何使用Mybatis提供的choose标签动态生成条件语句。 如果您对if,where标签动态生成条件语句不太了解&#xff0c;建议您先进行了解后再阅读本篇&#xff0c;可以参考&#xff1a; Mybat…...

http接口自动化测试框架实现

目录 一、测试需求描述 二、实现方法 三、Excel表格样式 四、实现代码&#xff08;代码才是王道&#xff0c;有注释很容易就能看明白的&#xff09; 一、测试需求描述 对服务后台一系列的http接口功能测试。 输入&#xff1a;根据接口描述构造不同的参数输入值 输出&…...

Android逆向学习(三)vscode修改smali绕过vip

Android逆向学习&#xff08;三&#xff09;vscode修改smali绕过vip 写在前面 这是吾爱的第二个作业&#xff0c;主要就是要修改smali代码&#xff0c;其实smali代码我感觉没有必要去学&#xff0c;当然主要是我本来就会汇编语言&#xff0c;基本上汇编语言都是一样的&#x…...

代码随想录训练营第38天|62.不同路径,63.不同路径II

代码随想录训练营第38天|62.不同路径&#xff0c;63.不同路径II 62.不同路径文章思路代码 63.不同路径II文章思路代码 总结 62.不同路径 文章 代码随想录|0062.不同路径 思路 d p [ i ] [ j ] { 1 , i 0 ∧ j 0 d p [ i − 1 ] [ j ] d p [ i ] [ j − 1 ] , e l s e \b…...

BlueStore BlueFS rocksdb 关联性梳理

Tag: ceph 12.2.4 BlueStore空间初始化 BlueStore磁盘空间管理 总述 OSD挂载目录基于文件系统管理&#xff0c;Slow、WAL、DB空间区域基于裸盘管理&#xff1b;Slow区域&#xff1a;此类空间主要用于存储对象数据&#xff0c;由BlueStore管理&#xff0c;其中分配于BlueFS空…...

PgSQL-并行查询系列-介绍[译]

PgSQL-并行查询系列-介绍 现代CPU模型拥有大量的CPU核心。多年来&#xff0c;数据库应用程序都是并发向数据库发送查询的。查询处理多个表的行时&#xff0c;若可以使用多核&#xff0c;则可以客观地提升性能。PgSQL 9.6引入了并行查询的新特性&#xff0c;开启并行查询后可以大…...

Linux以系统服务的方式启动Kafka(其他服务同理)

最终效果&#xff1a; 先回顾命令行的启动方式&#xff1a; kafka的启动 进入kafka的安装目录 1、首先启动zookeeper服务&#xff1a; bin/zookeeper-server-start.sh config/zookeeper.properties2、再启动kafka bin/kafka-server-start.sh config/server.properties &…...

成都瀚网科技有限公司:抖店的评论会消失吗?

抖店是抖音推出的电子商务平台。很多用户在购物后都会对产品进行评价。但有时用户可能会发现抖店评论缺失&#xff0c;让用户产生一些疑惑和困惑。本文将围绕这个问题提供一些答案和解决方案。 1.为什么抖店评论不见了&#xff1f; 首先需要明确的是&#xff0c;抖店评论消失可…...

优先级队列priority_queue以及仿函数的使用

目录 优先级队列priority_queuepriority_queue的模拟实现仿函数 优先级队列priority_queue 优先级队列priority_queue是一种容器适配器&#xff0c;根据严格的弱排序标准&#xff0c;它默认第一个元素总是它所包含的元素中最大的 优先级队列默认使用vector作为底层存储数据的…...

java+ssm+mysql水费管理系统

项目介绍&#xff1a; 使用javassmmysql开发的用户水费管理系统&#xff0c;系统包含超级管理员&#xff0c;系统管理员、用户角色&#xff0c;功能如下&#xff1a; 超级管理员&#xff1a;管理员管理、用户管理、用水管理&#xff08;用水记录、缴费提醒&#xff09;、水费…...

搭建最简单的SpringBoot项目

1、创建maven项目 2、引入父pom <parent><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-parent</artifactId><version>2.7.15</version> </parent> 3、引入springboot-web依赖 <dependency…...

Windows系统手动重新生成性能计数器

症状 使用性能监视器工具时&#xff0c;某些计数器可能缺失或不包含计数器数据。 性能计数器库可能已损坏&#xff0c;需要重新生成。 应用程序日志中可能会出现以下错误&#xff1a; Log Name: Application Source: Microsoft-Windows-IIS-W3SVC-PerfCounters Event ID…...

go elsaticsearch demo

安装 // elasticsearch sdk go get -u github.com/elastic/go-elasticsearch/v7 //操作json go get "github.com/tidwall/gjson" go get "github.com/aquasecurity/esquery"demo package esexampleimport ("bytes""context""en…...

小游戏分发平台如何以技术拓流?

2023年&#xff0c;小游戏的发展将受到多方面的影响&#xff0c;例如新技术的引入、参与小游戏的新玩家以及游戏市场的激烈竞争等。首先&#xff0c;新技术如虚拟现实&#xff08;VR&#xff09;、增强现实&#xff08;AR&#xff09;和机器人技术都可以带来新颖的游戏体验。其…...

力扣|找出和所对应的两数的下标

从零开始刷力扣&#xff08;bushi 题目放在这&#xff1a; 给定一个整数数组 nums 和一个整数目标值 target&#xff0c;请你在该数组中找出和为目标值target的两个整数&#xff0c;并返回它们的数组下标。 你可以假设每种输入只会对应一个答案。但是&#xff0c;数组中同一…...

使用命令行创建仓库

如果你还没有任何代码&#xff0c;可以通过命令行工具创建一个全新的Git仓库并初始化到本项目仓库中。 git clone https://e.coding.net/***/neurosens.git cd neurosens echo "# neurosens" >> README.md git add README.md git commit -m "first commi…...

ESLint 中的“ space-before-function-paren ”相关报错及其解决方案

ESLint 中的“ space-before-function-paren ”相关报错及其解决方案 出现的问题及其报错&#xff1a; 在 VScode 中&#xff0c;在使用带有 ESLint 工具的项目中&#xff0c;保存会发现报错&#xff0c;并且修改好代码格式后&#xff0c;保存会发现代码格式依然出现问题&…...

docker常用中间件安装

文章目录 1、前言2、中间件安装2.1、mysql2.2、gitlab容器2.3、nacos2.4、redis2.5、xxljob2.6、zipkin2.7、sentinel2.8、seata2.8.1、获取镜像2.8.2、运行容器并获取配置 2.9、rockerMQ2.9.1、rockerMQ-namesrv2.9.2、rockerMQ-broker2.9.3、rockerMQ-console 2.10、jenkins2…...

Camunda 7.x 系列【44】修改流程实例

有道无术,术尚可求,有术无道,止于术。 本系列Spring Boot 版本 2.7.9 本系列Camunda 版本 7.19.0 源码地址:https://gitee.com/pearl-organization/camunda-study-demo 文章目录 1. 概述2. 案例演示2.1 回退2.2 子流程2.3 多实例加签1. 概述 流程模型中,执行活动需要按…...

对比直接使用厂商API体验Taotoken聚合调用在延迟上的优化感受

&#x1f680; 告别海外账号与网络限制&#xff01;稳定直连全球优质大模型&#xff0c;限时半价接入中。 &#x1f449; 点击领取海量免费额度 对比直接使用厂商API体验Taotoken聚合调用在延迟上的优化感受 作为一名长期直接调用单一模型API的开发者&#xff0c;我的日常工作…...

为什么92%的开发者查不到真正“实时”新闻?Perplexity底层时间戳校验机制首度公开

更多请点击&#xff1a; https://intelliparadigm.com 第一章&#xff1a;为什么92%的开发者查不到真正“实时”新闻&#xff1f;Perplexity底层时间戳校验机制首度公开 当开发者在凌晨三点搜索“React 19 正式发布”&#xff0c;返回结果却显示“发布时间&#xff1a;2024-03…...

5个步骤掌握微信聊天记录永久保存:WeChatMsg完全掌控指南

5个步骤掌握微信聊天记录永久保存&#xff1a;WeChatMsg完全掌控指南 【免费下载链接】WeChatMsg 提取微信聊天记录&#xff0c;将其导出成HTML、Word、CSV文档永久保存&#xff0c;对聊天记录进行分析生成年度聊天报告 项目地址: https://gitcode.com/GitHub_Trending/we/We…...

如何扛住十万级流量洪峰?扒开高并发架构的五层防御体系

在互联网的残酷战场上&#xff0c;流量既是黄金&#xff0c;也是洪水。试想这样一个场景&#xff1a;你们公司花重金请了一位顶流代言人&#xff0c;晚上 8 点准时开启一场“一元秒杀”活动。时间一到&#xff0c;原本平时只有几百 QPS&#xff08;每秒请求数&#xff09;的系统…...

Hi3403开发板内核升级至Linux 6.6:驱动适配与稳定性调优实战

1. 项目概述&#xff1a;一次内核升级背后的工程实践最近&#xff0c;我们团队完成了对迅为iTOP-Hi3403开发板配套SDK的一次重要更新&#xff0c;将内核版本从之前的长期支持版&#xff08;LTS&#xff09;升级到了最新的Linux 6.6。这不仅仅是一个版本号的跳动&#xff0c;对于…...

OpenClaw 2.7.5 Windows 一键部署教程|零配置开箱即用

前言 本地 AI 智能体技术持续迭代&#xff0c;私有化部署、数据安全可控、低门槛快速落地&#xff0c;已成为用户选型的核心考量。开源轻量化 AI 智能体 OpenClaw 2.7.5 版本完成全面优化升级&#xff0c;在环境适配性、服务稳定性与模型集成能力上均有显著提升&#xff0c;原…...

告别手写UI!用VSCode+QtDesigner+PyQt5,5分钟搞定你的第一个Python图形界面

5分钟极速构建Python GUI&#xff1a;VSCodeQtDesignerPyQt5全流程实战 每次看到同事用代码逐行构建UI界面时&#xff0c;总忍不住想起自己初学时的痛苦经历——调整一个按钮位置要反复运行程序&#xff0c;修改边距像素值就像在玩"猜数字"游戏。直到发现QtDesigner这…...

别再傻傻分不清了!Lua中load和loadstring到底怎么用?一个例子讲透

深入解析Lua中的动态代码加载&#xff1a;load与loadstring的实战指南 在Lua开发中&#xff0c;动态代码加载是一个强大但容易引发困惑的功能。许多开发者在不同环境下使用load和loadstring时&#xff0c;经常会遇到各种报错信息&#xff0c;比如"bad argument #1 to load…...

H5GG完整指南:如何用JavaScript和HTML5轻松修改iOS游戏内存

H5GG完整指南&#xff1a;如何用JavaScript和HTML5轻松修改iOS游戏内存 【免费下载链接】H5GG an iOS Mod Engine with JavaScript APIs & Html5 UI 项目地址: https://gitcode.com/gh_mirrors/h5/H5GG 你是否曾经想过修改iOS游戏中的数值&#xff0c;却因为复杂的越…...

快速 AI 迭代仍然需要操作纪律

前言 配套资源&#xff1a;AI 辅助开发检查清单资源包&#xff0c;适合把本文的流程直接落成开发前检查表和复盘模板。 上一篇文章里&#xff0c;我把 AI 工作流拆成了几类任务模式&#xff1a;开发维护、探索学习、反馈确认。这个分类解决的是一个前置问题&#xff1a;在使用 …...