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.pswp.cn/bicheng/73926.shtml
繁體地址,請注明出處:http://hk.pswp.cn/bicheng/73926.shtml
英文地址,請注明出處:http://en.pswp.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…