Godot读取json配置文件

概述

在Godot 4.3中读取JSON配置文件,可以通过以下步骤实现:

步骤说明

  1. 读取文件内容:使用FileAccess类打开并读取JSON文件。

  2. 解析JSON数据:使用JSON类解析读取到的文本内容。

  3. 错误处理:处理文件不存在或JSON格式错误的情况。

编码

extends Nodefunc _ready():var config_data = load_config()if config_data:print("配置加载成功:", config_data)else:print("配置加载失败")func load_config():# 打开文件var file = FileAccess.open("res://config.json", FileAccess.READ)if not file:push_error("无法打开配置文件!")return null# 读取文本内容var content = file.get_as_text()file.close()  # 显式关闭文件# 解析JSONvar json = JSON.new()var parse_error = json.parse(content)if parse_error != OK:push_error("JSON解析错误:%s(第%d行)" % [json.get_error_message(),json.get_error_line()])return null# 返回解析后的数据(字典或数组)return json.data
  1. 文件路径

    • res://:项目资源目录,适用于只读配置文件。

    • user://:用户数据目录,适用于可写入的配置。

  2. 错误处理

    • 使用FileAccess.open()时检查返回值,确保文件存在。

    • 解析JSON时检查parse()的返回值,捕获语法错误。

  3. 数据结构

    • JSON对象会被转换为GDScript的Dictionary

    • JSON数组会被转换为Array

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/bicheng/73926.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

RabbitMQ八股文

RabbitMQ 核心概念与组件 1. RabbitMQ 核心组件及其作用 1.1 生产者(Producer) 作用:创建并发送消息到交换机。特点:不直接将消息发送到队列,而是通过交换机路由。 1.2 交换机(Exchange) 作…

C语言每日一练——day_7

引言 针对初学者,每日练习几个题,快速上手C语言。第七天。(连续更新中) 采用在线OJ的形式 什么是在线OJ? 在线判题系统(英语:Online Judge,缩写OJ)是一种在编程竞赛中用…

C#原型模式:通过克隆对象来优化创建过程

在软件开发中,创建对象是非常常见的操作。然而,在某些情况下,构造对象的过程可能非常复杂或耗时,特别是当对象的创建涉及多个步骤或者需要初始化大量数据时。为了解决这个问题,**原型模式(Prototype Patter…

ArcGIS10. 8简介与安装,附下载地址

目录 ArcGIS10.8 1. 概述 2. 组成与功能 3. 10.8 特性 下载链接 安装步骤 1. 安装准备 2. 具体步骤 3.补丁 其他版本安装 ArcGIS10.8 1. 概述 ArcGIS 10.8 是由美国 Esri 公司精心研发的一款功能强大的地理信息系统(GIS)平台。其核心功能在于…

Mac:JMeter 下载+安装+环境配置(图文详细讲解)

📌 下载JMeter 下载地址:https://jmeter.apache.org/download_jmeter.cgi 📌 无需安装 Apache官网下载 JMeter 压缩包,无需安装,下载解压后放到自己指定目录下即可。 按我自己的习惯,我会在用户 jane 目…

【PCB工艺】基础:电子元器件

电子原理图(Schematic Diagram)是电路设计的基础,理解电子元器件和集成电路(IC)的作用,是画好原理图的关键。 本专栏将系统讲解 电子元器件分类、常见 IC、电路设计技巧,帮助你快速掌握电子电路…

nvm 安装某个node.js版本后不能使用或者报错,或不能使用npm的问题

安装了nvm之后发现不能使用某个版本的node.js,报错之后,不能使用npm这个命令。可以这样解决: 1、再node.js官网直接下载node.js 的压缩包。 找到nvm的安装目录 2、直接将文件夹解压到这个安装目录中修改一下名字即可。

【MySQL数据库】多表查询(笛卡尔积现象,联合查询、内连接、左外连接、右外连接、子查询)-通过练习快速掌握法

在DQL的基础查询中,我们已经学过了多表查询的一种:联合查询(union)。本文我们将系统的讲解多表查询。 笛卡尔积现象 首先,我们想要查询emp表和stu表两个表,按照我们之前的知识栈,我们直接使用…

Java:Apache HttpClient中HttpRoute用法的介绍

当使用Apache HttpClient组件时,经常会用到它的连接池组件。典型的代码如下: PoolingHttpClientConnectionManager connectionManager new PoolingHttpClientConnectionManager();connectionManager.setMaxTotal(httpConfig.getMaxPoolTotal());connect…

RHCE(RHCSA复习:npm、dnf、源码安装实验)

七、软件管理 7.1 rpm 安装 7.1.1 挂载 [rootlocalhost ~]# ll /mnt total 0 drwxr-xr-x. 2 root root 6 Oct 27 21:32 hgfs[rootlocalhost ~]# mount /dev/sr0 /mnt #挂载 mount: /mnt: WARNING: source write-protected, mounted read-only. [rootlocalhost ~]# [rootlo…

分布式的消息流平台之Pulsar

Pulsar 流处理详解 Apache Pulsar 是一个分布式的消息流平台,集成了**消息队列(MQ)和流处理(Stream Processing)**能力。Pulsar 不仅提供低延迟、高吞吐的消息传输能力,还支持基于 Pulsar Functions、Flin…

【C++多线程】thread

C中的std::thread是C11引入的线程库的一部分&#xff0c;提供了创建和管理线程的能力。它封装了操作系统的线程接口&#xff0c;使得在C中更方便地进行多线程编程。 1. std::thread 的定义 std::thread 类位于<thread>头文件中&#xff0c;定义在std命名空间下&#xff…

【css酷炫效果】纯CSS实现故障文字特效

【css酷炫效果】纯CSS实现故障文字特效 缘创作背景html结构css样式完整代码基础版进阶版(3D效果) 效果图 想直接拿走的老板&#xff0c;链接放在这里&#xff1a;https://download.csdn.net/download/u011561335/90492053 缘 创作随缘&#xff0c;不定时更新。 创作背景 刚…

uniapp配置代理解决跨域问题

两种方式&#xff1a; 1、manifest.json中配置 "h5" : {"template" : "static/index.html","devServer" : {"port" : 9090,"https" : false,"proxy":{"/prod-api":{"target":&quo…

物联网为什么用MQTT不用 HTTP 或 UDP?

先来两个代码对比&#xff0c;上传温度数据给服务器。 MQTT代码示例 // MQTT 客户端连接到 MQTT 服务器 mqttClient.connect("mqtt://broker.server.com:8883", clientId) // 订阅特定主题 mqttClient.subscribe("sensor/data", qos1) // …

Flutter:页面滚动,导航栏背景颜色过渡动画

记录&#xff1a;导航默认透明&#xff0c;页面发生滚动后&#xff0c;导航背景色由0-1&#xff0c;过渡到白色背景。 view import package:ducafe_ui_core/ducafe_ui_core.dart; import package:flutter/material.dart; import package:get/get.dart; import package:redo…

STM32 —— MCU、MPU、ARM、FPGA、DSP

在嵌入式系统中&#xff0c;MCU、MPU、ARM、FPGA和DSP是核心组件&#xff0c;各自在架构、功能和应用场景上有显著差异。以下从专业角度详细解析这些概念&#xff1a; 一、 MCU&#xff08;Microcontroller Unit&#xff0c;微控制器单元&#xff09; 核心定义 集成系统芯片&a…

批量删除 PPT 空白幻灯片页面

如果我们需要删除 PPT 文档中的空白幻灯片页面&#xff0c;我们可以借助 Office 工具来完成&#xff0c;但是如果是大量的 PPT 文档需要批量删除空白幻灯片页面&#xff0c;那就需要使用专业的批量处理工具来完成&#xff0c;今天就给大家介绍一种批量删除 PPT 空白幻灯片页面的…

【canvas】一键自动布局:如何让流程图节点自动找到最佳位置

一键自动布局&#xff1a;如何让流程图节点自动找到最佳位置 引言 在流程图、拓扑图和系统架构图设计中&#xff0c;节点布局往往是最令人头疼的问题。如果手动调整每个节点位置&#xff0c;不仅耗时费力&#xff0c;还难以保证美观性和一致性。本文将深入解析如何实现自动布…

【平台优化】大数据集群一个客户端参数引起的任务性能差的问题

大数据集群一个客户端参数引起的任务性能差的问题 背景介绍排查过程任务慢的具体原因Executor中数据内存往磁盘溢写结果数据写入分区路径 分析解决方案 结语&思考 背景介绍 随着业务量不断扩大&#xff0c;平台逐步发展成HDFS多联邦的架构&#xff0c;这个过程中&#xff…