Godot Engine でJSONファイルを読み書きするときに便利なスクリプト

JSONファイルの読み書きに使う関数群。設定ファイルを実装するときに便利。

extends Node


func readlines(path: String) -> String:
	var f = FileAccess.open(path, FileAccess.READ)
	var txt = PackedStringArray()

	while f.get_position() < f.get_length():
		txt.append(f.get_line())
	f.close()

	return '\n'.join(txt)


func load_json(path: String) -> Dictionary:
	var text = readlines(path)
	var json = JSON.new()
	var parse_result = json.parse(text)
	if not parse_result == OK:
		print_debug(
			'JSON Parse Error: ', json.get_error_message(),
			' in ', text,
			' at line ', json.get_error_line()
		)
		return {}
	var data: Dictionary = json.get_data()
	return data


func save_json(data: Dictionary, path: String):
	var f = FileAccess.open(path, FileAccess.WRITE)
	var json_string = JSON.stringify(data)
	f.store_line(json_string)
	f.close()

上記の関数をプロジェクトのどこからでも呼べるように、 [プロジェクト設定] > [自動読み込み] に登録する。この登録はGDScript .gd 単位でもシーン .tscn 単位でも可能。

The project settings in Godot